【发布时间】:2018-04-04 23:17:45
【问题描述】:
嗨,我对 vba 很陌生,我已经尝试了很长时间来解决这个问题,但似乎无法破解它。
我有一个包含几张工作表的工作簿,在偶数工作表中,a 列中有yyyy-mm-dd 格式的日期,b 列中有数据(它会有所不同)。
Excel 似乎无法将这些识别为日期,我需要使用一个公式来查找每张工作表中缺失的日期,然后插入一个包含缺失日期的新行(以及列的 b 到空白)那张纸很宽)。
我只是试图将日期转换为 mm/dd/yy 以便 Excel 至少将它们识别为日期而迷路了。
我的代码不是很好,但到目前为止我真的只知道如何遍历偶数页并插入空白列。
Sub add_columns()
Dim i As Integer
Dim ws_num As Integer
Dim starting_ws As Worksheet
Set starting_ws = ActiveSheet
ws_num = ThisWorkbook.Worksheets.Count
For i = 2 To ws_num Step 2
ThisWorkbook.Worksheets(i).Activate
Range("B1").EntireColumn.Insert
Range("B:D").EntireColumn.Insert
**For x = 2 to #ROWS in column B
cell.b"x" = MID(b"x",3,2)
cell.c"x" = mid(a"x",6,2)
cell.d"x" = left(a"x",2)
cell.e"x" = c"x" / d"x" / b"x"
next**
Next
End Sub
星星之间的东西是我无法弄清楚的,这真的只会给我正确格式的日期,但即使这样也会有很大帮助。
之后我会尝试写一些东西来查看日期,确定一个单元格是否等于前一个加一,如果不插入新行,则使日期单元格等于前一个加一,再次检查等等。
谢谢
【问题讨论】:
-
Excel 应该在大多数语言环境中将该格式识别为日期。你的语言环境是什么?这些细胞中究竟是什么?您怎么知道 Excel 没有将其识别为日期?
-
尝试使用 DateValue 函数将文本日期转换为实际日期。 DateValue("2018-04-01") 将为您提供 43191,您可以根据需要对其进行格式化。