vba - 我仅在某些 Excel 2010 版本中收到 'Compile error: Can' t find project or library'。很难测试这个

标签 vba excel error-handling compilation

我的客户遇到编译错误;在他的 Excel 2010 版本上找不到项目或库,但是我在我的 2010 版本上找不到此项目或库。我如何调整此代码,使其不会出现。当以下代码中出现错误时,“对于选择中的每个单元格”中的文本“单元格”将突出显示:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$9" Then
Columns("D:CB").Select
Selection.EntireColumn.Hidden = False
Application.ScreenUpdating = False

Sheet17.Range("E48:CB48").Select

For Each cell In Selection
    If cell = 0 Then
       Range(cell.Address).EntireColumn.Hidden = True
    End If
Next

Application.ScreenUpdating = True
Sheet17.Range("b9").Select
End If

End Sub`

我的客户还报告了以下代码中的错误,其中突出显示了“响应”一词。对于我的 Excel 2010 版本来说,这对我来说也不是问题。非常感谢您的帮助。

If Sheet1.Range("E18") = 3 Then
Response = MsgBox("Reminder Emails have been set to be sent automatically at " &               Sheet1.Range("f18").Value & ", " & Sheet1.Range("Q4").Value & " day(s) before" & vbCrLf & "the scheduled appointment. Do you want to send reminder e-mails now anyway?", vbYesNo)
    If Response = vbNo Then
    Exit Sub
    End If
    End If

最佳答案

在 VBA 窗口中,转到工具 --> 引用并确保为所有计算机打开相同的库。还要确保所有事件库从上到下的顺序相同。

许多库都是“标准”的,但其中一个库可能需要打开。或者,由于功能干扰,库引用可能需要关闭。库可能完全丢失,但我怀疑情况确实如此,因为它是一个相当标准的套件,并且您不知道对它进行了修改。

这是一个典型问题,通常不会被认为对您的发行客户造成太大负担。如果是,您可以重新编写代码以使用更少的引用;或者您可以load the needed libraries programmatically (但我从来没有尝试过)。

我建议您在所有模块的顶部包含Option Explicit。这个问题看起来有点像变量声明失败;我认为该要求可能因设置而异。 Option Explicit 将强制声明所有变量,这通常是有益的,并且可能导致所有客户端安装的行为相同。

关于vba - 我仅在某些 Excel 2010 版本中收到 'Compile error: Can' t find project or library'。很难测试这个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11533494/

相关文章:

excel - SSIS 脚本任务 - 使用只读变量名称保存 Excel 模板的副本

VBA Cbool 是什么意思? (实际英语)

error-handling - 在 Fortran 运行时禁用 FPE 处理程序

python - 有什么方法可以返回我猜对的数字并在其后添加文本?

vba - 自动过滤器可以从字典键中获取包含和非包含通配符吗?

vba - 为什么单元格(变量 ,"B")不起作用

vba - 根据长度和前 3 个字符替换数字

excel - 使用 Excel 宏循环遍历文件夹中的文件

VBA ExportAsFixedFormat 仅保存最后一个事件图表

c# - 如何在C#中引发错误消息?