我在一些Excel 2010版本中得到"编译错误:无法找到项目或库".很难测试这个

Exc*_*ers 8 error-handling excel vba compilation excel-vba

我的客户正在收到编译错误; 在他的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`
Run Code Online (Sandbox Code Playgroud)

我的客户也在报告以下代码中的错误,并突出显示"响应"一词.在我的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
Run Code Online (Sandbox Code Playgroud)

Sma*_*oli 9

在VBA窗口中,转到Tools --> References并确保为所有计算机切换相同的库.还要确保所有活动库从上到下采用相同的顺序.

许多图书馆"标准化",但可能需要切换.或者,由于功能性干扰,可能需要关闭库引用.一个库可能完全缺失,但我怀疑是这种情况,因为它是一个相当标准的套件,你不知道它已经修改过.

这是一个典型的问题,通常不会对您的分销客户造成太大的负担.如果是,您可以重新编写代码以使用更少的引用; 或者您可以以编程方式加载所需的库(但我从未尝试过).

我建议你Option Explicit把所有模块都包括在内.这个问题看起来有点像没有声明你的变量; 我认为这个要求可能因设置而异. Option Explicit将强制声明所有变量,这通常是有益的,并可能导致所有客户端安装行为相同.