当前位置: 代码迷 >> VBA >> 怎么修改excel表格已有的时间的格式
  详细解决方案

怎么修改excel表格已有的时间的格式

热度:6017   发布时间:2013-02-26 00:00:00.0
如何修改excel表格已有的时间的格式
如表格的时间格式为2010-04-03 06:00:00,如何使用vba批量判断并修改为 2010-04-03 06-00格式,请高手指点。
 

------解决方案--------------------------------------------------------
上个代码简洁明了

VB code
Sub ChangeRangeFormat()    Dim R As Range        For Each R In Worksheets("Sheet1").Range("A1").CurrentRegion        If R.NumberFormatLocal = "yyyy-mm-dd hh:mm:ss" Then            R.NumberFormatLocal = "yyyy-mm-dd hh-mm"        End If    Next REnd Sub
------解决方案--------------------------------------------------------
他代码只处理A1,你需要把范围搞大点
探讨
好像楼上的代码执行后没有什么反应的,不知为何?

------解决方案--------------------------------------------------------
首先,3楼的说法是错误的,代码中“Range("A1").CurrentRegion”的意思就是选取单元格A1附近的最大连续区域。当然,如果单元格区域不连续,那也就只能选到很少的单元格了。

其次,楼主的Excel是否允许执行宏?有没将安全级别降低?(“高”以下)

然后,我在1楼已经明确表达了一个观点(代码中也体现了):如果单元格不是“yyyy-mm-dd hh:mm:ss”这样的格式,那么程序将不会处理该单元格。

第四,楼主可以检查一下,单元格日期是否为文本类型:单元格格式为“文本”,或者单元格内容左靠。

最后,如果楼主想把整个Sheet中所有的日期改为“2010-04-03 06-00”格式,那么请看代码:
VB code
Sub ChangeRangeFormat()    Dim R As Range    With Application        .ScreenUpdating = False        .Calculation = xlCalculationManual        For Each R In Worksheets("Sheet1").Cells            If IsDate(R) Then                R.NumberFormatLocal = "yyyy-mm-dd hh-mm"            End If        Next R        .ScreenUpdating = True        .Calculation = xlCalculationAutomatic    End WithEnd Sub
  相关解决方案