我对以下代码有一个问题,每次我打开文件时它都会返回一个类型不匹配的错误消息。问题是这个文件在一些PC上运行得很好,而在我的笔记本电脑上,它却触发了这个错误。
Private Sub Workbook_Open()
Sheets("Report").Unprotect
'
If Date <> Sheets("Report").Range("A1") Then
If Time(Now) >= 6 Then
Sheets("Report").Range("A1").Value = Date
Sheets("Report").Range("C3").Value = 0
End If
End If
Sheets("Report").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowSorting:=True, AllowFiltering:=True
End Sub发布于 2016-05-16 16:12:05
Hour(Now())应该做到这一点。小时、分钟和秒、日、月和年。类型不匹配是试图将不同的类型放入不正确的变量类型中,或者尝试对两个无法匹配的类型进行比较,因此如果按F1,您可以看到时间返回一个时间,并且您正在与一个整数进行比较。
发布于 2016-05-16 16:53:32
有趣的是,这在一些PC上有效,正如Nathan_Sav显示的那样,用Hour(now())替换Time(now)将消除该错误,但我不确定这是否是您需要的修复程序。
If Hour(now()) >= 6 Then
Sheets("Report").Range("A1").Value = Date
Sheets("Report").Range("C3").Value = 0
End If如果时间等于或大于06:00到23:59,上述代码将运行代码。
这是我们的目标吗?
同样,正如Nathan_Sav所展示的,其他选项可以是:
Second(now()) >= 6 =如果分钟等于或大于6秒,则运行,直到第59秒
Minute(now()) >= 6 =如果小时等于或大于6分钟,则运行,直到第59分钟
Hour(now()) >= 6 =如果时间等于或大于06:00,则运行,直到23:59
Day(now()) >= 6 =如果截至当月的天数等于或大于6(即28到31),则运行
Month(now()) >= 6 =如果月份等于或大于6月(第6个月)到12月,则运行
年份不在此特定列表中。
https://stackoverflow.com/questions/37249331
复制相似问题