我有一个工作簿保存在带有许多ActiveX命令按钮的网络驱动器上,我已经为它们提供了所有相应的名称以及这些按钮名称的代码块。
现在两次当我的同事试图打开这本书并使用这些功能时,没有一个按钮有效。调查让我注意到按钮的所有名称都重置为" CommandButton1" " CommandButton2"等等。
无论我看起来多么努力,我都找不到任何可能导致这种情况的线索。非常感谢任何帮助。
两者都使用Excel 2010
答案 0 :(得分:0)
我猜你的同事系统出了什么问题,最近的微软更新打破了ActiveX控件。尝试this解决方案,如果是这种情况,它应该解决问题。
1-关闭所有Office应用程序。
2-在Windows资源管理器中进行搜索 - 确保包含隐藏和系统文件和文件夹 - 用于* .exd 文件(注意:那不是* .exe !!)并删除你找到的任何文件。确保 你得到这些: C:\ Users \用户名\ AppData \本地的\ Temp \ Excel8.0 \ MSForms.exd C:\ users \ username \ AppData \ Local \ Temp \ VBE \ MSForms.exd
3 - 重启 计算机(这并不总是必要的,但可能比安全更好 抱歉)
4 - 重新启动Office应用程序并再次测试控件。
答案 1 :(得分:0)
几周前我遇到了同样的问题,你可以看到我的问题here。没有人能够帮助我,我尝试了不同的方法来解决它。几天后,我终于按照link
进行了修复将以下VBA代码复制并粘贴到电子表格中的任何模块中。(模块1对我来说)
Public Sub RenameMSFormsFiles()
Const tempFileName As String = "MSForms - Copy.exd"
Const msFormsFileName As String = "MSForms.exd"
On Error Resume Next
'Try to rename the C:\Users\[user.name]\AppData\Local\Temp\Excel8.0\MSForms.exd file
RenameFile Environ("TEMP") & "\Excel8.0\" & msFormsFileName, Environ("TEMP") & "\Excel8.0\" & tempFileName
'Try to rename the C:\Users\[user.name]\AppData\Local\Temp\VBE\MSForms.exd file
RenameFile Environ("TEMP") & "\VBE\" & msFormsFileName, Environ("TEMP") & "\VBE\" & tempFileName
End Sub
Private Sub RenameFile(fromFilePath As String, toFilePath As String)
If CheckFileExist(fromFilePath) Then
DeleteFile toFilePath
Name fromFilePath As toFilePath
End If
End Sub
Private Function CheckFileExist(path As String) As Boolean
CheckFileExist = (Dir(path) <> "")
End Function
Private Sub DeleteFile(path As String)
If CheckFileExist(path) Then
SetAttr path, vbNormal
Kill path
End If
End Sub
然后在Workbook_Open事件的最开始调用RenameMSFormsFiles子例程。
Private Sub Workbook_Open()
RenameMSFormsFiles
End Sub