gpt4 book ai didi

vba - 编译错误 vba - 我想覆盖它

转载 作者:行者123 更新时间:2023-12-02 10:44:19 26 4
gpt4 key购买 nike

我阅读了以下内容:
Compile error Method or data member not found
但是,我不允许在工作计算机上下载任何内容。因此,我试图通过让用户窗体出现下拉日期来覆盖编译错误,供人们在他们的计算机上没有可用的日历日期选择器选项时使用。

有什么办法可以覆盖编译错误?我尝试了以下代码:

 Private Sub UserForm_Initialize()
On Error GoTo EnterDateManually
If IsDate(ActiveCell.Value) Then
Me.MonthView1.Value = ActiveCell.Value
End If
EnterDateManually:
Enter_Date.Show
End Sub

但它仍然给我编译错误。编译错误突出了 MonthView1,因为在这台计算机上我删除了缺少的 References 库,因为我在这台计算机上没有它,而且我确信其他用户也不会在他们的计算机上拥有它。

我知道当您收到数字错误时,您可以覆盖它(尽管您应该先尝试修复它 :-) 但似乎无法覆盖编译错误?或者是不是...
谢谢你的帮助

最佳答案

Me.MonthView1在编译时不存在,因此 MonthView1不是 Me 的成员- 因此,找不到方法或数据成员。
On Error语句是可执行的:当它们开始运行时,代码早已被编译——你不能使用该语句来处理编译错误。

编译错误意味着您的代码无法编译:某处存在非法或格式错误的语句,Option Explicit已指定且未声明变量,...或缺少引用的类型库。

通过删除 <MISSING>类型库,你是在告诉 VBA“这个项目实际上并不需要这个库”——如果项目中没有任何东西需要这个库,一切都会好起来的。

在大多数情况下,您可以后期绑定(bind)类型库,并在该库丢失时在运行时而不是编译时炸毁 - 然后是的,您可以使用 On Error 处理它陈述。

但是,您不能后期绑定(bind)需要显示在 UserForm 上的 MSForms 控件。在设计时,因为 VBA 需要在设计时加载该控件,以呈现表单设计器。

您可以让 MSForms 控件在其库可以加载时显示,而在库不存在时不显示(我从未尝试过)的唯一方法是在运行时加载该库,并且在运行时有条件地生成控件。现在后期绑定(bind)的一个问题是,您不能在编译时绑定(bind)事件处理程序,而 VBA 不允许您在运行时绑定(bind)事件处理程序,因此您的动态控件不能有事件处理程序。但我认为你仍然可以检查它的状态,所以如果你真的想这样做,它可能是可行的。

关于vba - 编译错误 vba - 我想覆盖它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51896392/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com