VBA时间(现在)键入不匹配错误
我遇到以下代码的问题,每次打开文件时都会返回types不匹配的错误消息。 问题是这个文件在一些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
Hour(Now())
应该这样做。 小时和第二,日月和年。 types不匹配试图把不同的types放入不正确的variablestypes中,或者尝试对两种types进行比较,所以如果你按下F1,你可以看到时间返回一个时间,并且你正在比较一个整数。
有趣的是,这在一些个人电脑上工作,因为Nathan_Sav显示replaceTime(now)
与Hour(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
=如果date等于或大于6直到当前月份的顶部(即28到31)
Month(now()) >= 6
=月份等于或大于六月(第六个月)至十二月
年份不适合在这个特定的列表。