首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VBA >

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

2012-04-01 
如何修改excel表格已有的时间的格式如表格的时间格式为2010-04-03 06:00:00,如何使用vba批量判断并修改为

如何修改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 

热点排行