怎么修改excel表格已有的时间的格式
如何修改excel表格已有的时间的格式
如表格的时间格式为2010-04-03 06:00:00,如何使用vba批量判断并修改为 2010-04-03 06-00格式,请高手指点。
------解决方案--------------------
上个代码简洁明了
如表格的时间格式为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 R End 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 With End Sub