首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBA时间(现在)类型不匹配错误

VBA时间(现在)类型不匹配错误
EN

Stack Overflow用户
提问于 2016-05-16 16:07:55
回答 2查看 267关注 0票数 0

我对以下代码有一个问题,每次我打开文件时它都会返回一个类型不匹配的错误消息。问题是这个文件在一些PC上运行得很好,而在我的笔记本电脑上,它却触发了这个错误。

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

发布于 2016-05-16 16:12:05

Hour(Now())应该做到这一点。小时、分钟和秒、日、月和年。类型不匹配是试图将不同的类型放入不正确的变量类型中,或者尝试对两个无法匹配的类型进行比较,因此如果按F1,您可以看到时间返回一个时间,并且您正在与一个整数进行比较。

票数 1
EN

Stack Overflow用户

发布于 2016-05-16 16:53:32

有趣的是,这在一些PC上有效,正如Nathan_Sav显示的那样,用Hour(now())替换Time(now)将消除该错误,但我不确定这是否是您需要的修复程序。

代码语言:javascript
复制
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月,则运行

年份不在此特定列表中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37249331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档