Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 我得到了';编译错误:Can';找不到项目或库';仅在一些Excel 2010版本中。这很难检验_Vba_Excel_Error Handling_Compilation - Fatal编程技术网

Vba 我得到了';编译错误:Can';找不到项目或库';仅在一些Excel 2010版本中。这很难检验

Vba 我得到了';编译错误:Can';找不到项目或库';仅在一些Excel 2010版本中。这很难检验,vba,excel,error-handling,compilation,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 = Fa

我的客户收到一个编译错误;在他的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`
我的客户还报告了以下代码中的一个bug,突出显示了“Response”一词。在我的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窗口中,转到
Tools-->References
,确保为所有计算机启用相同的库。还要确保所有活动库从上到下的顺序相同

许多库都是“标准库”,但其中一个库可能需要打开。或者,由于功能干扰,可能需要关闭库引用。一个图书馆可能完全不见了,但我怀疑这是不是真的,因为它是一个相当标准的套件,而且你还没有意识到对它进行了修补

这是一个典型的问题,通常不会对分销客户造成太大的负担。如果是,您可以重新编写代码以使用更少的引用;或者你可以(但我从来没有试过)


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

好的,我知道这一点,但我实际上希望我的代码有问题,这样我就不必让我的客户这么做了。根据您的回答,我将继续让他按照您的建议检查他的VBA库。(我希望这是一次罕见的事件,因为此应用程序将被广泛分发)感谢您的快速回复respoinse@raphuket这些库应该自动打开(问题是它们不是从机器上丢失了)toggled@brettdj嗯,好的。显然,我是VBA新手,我刚刚给我的客户发了一封电子邮件,附有说明,以检查这一点。如果他的库“丢失”,那么我猜只需要重新安装excel?或者这个“丢失的库”是他可以安装的,还是我可以发送给他?很抱歉提出这些问题,但如果这是其他客户普遍存在的问题,我必须找到解决办法。@raphuket。视情况而定。例如,您可能有对特定库的引用(例如Outlook 2010),而Customer可能有Outlook 2007。在这种情况下,“后期绑定”而不是“早期绑定”修复了错误匹配。看见你能发布一个你为这个项目检查过的参考资料的屏幕摘要吗?@brettdj和讨论——请参阅我的更新答案。我认为说“库应该自动打开”是不正确的。它们可能丢失,或者被关闭。您使用
Response
来保存一个长变量,因此这不应该触发错误(除非
Response
可能是库引用的对象模型的一部分-猜测)。我会对名称使用
lngressponse
,并尽可能长地对其进行标注。这可能与:好的,我会尝试一下。因为在我的机器上,所有这些选项都可以正常工作,所以我不得不等待客户的反馈,这有点令人沮丧。再次感谢您,请在VBIDE goto
工具-引用中发布引用的屏幕截图,并捕获已检查的引用。不标注变量不会成为问题,因此我认为您已将其标记为已提前解决。。。。。。。。。看看你的推荐信会很有用。