【发布时间】:2023-04-06 19:01:02
【问题描述】:
以下是我开发的代码。目标是从数据中减去“1”或“2”,具体取决于分别是星期六还是星期日。第 3 列包含短日期格式的日期,第 5 列包含相同的日期但转换为“dddd”格式。
错误发生在for循环的行内
if cells(i,5).Value = "Sat" Then
这里有趣的是,代码运行时没有出现“错误”,它只是跳过了该行的 if 语句。
Sub DataChange()
Dim i
Dim n
n = Cells(Rows.Count, 3).End(xlUp).Row
For i = 4 to n
If Cells(i,5).Value = "Sat" Then
Cells(i,3).Value = Cells(i,3).Value - 1
End If
If Cells(i,5).Value = "Sun" Then
Cells(i,3).Value = Cells(i,3).Value - 2
End If
Next i
End Sub
【问题讨论】:
-
您确定日期已转换,而不仅仅是以“dddd”格式显示吗?如果您只是更改了格式,
cells(i,5).Value仍然是一个日期,而不是一个字符串,并且不能与“Sat”进行比较。在这种情况下,您应该使用Cells(i,5).Text。
标签: excel vba function date subtraction