vba命令按钮重置名称

时间:2015-02-09 18:17:35

标签: excel vba

我有一个工作簿保存在带有许多ActiveX命令按钮的网络驱动器上,我已经为它们提供了所有相应的名称以及这些按钮名称的代码块。

现在两次当我的同事试图打开这本书并使用这些功能时,没有一个按钮有效。调查让我注意到按钮的所有名称都重置为" CommandButton1" " CommandButton2"等等。

无论我看起来多么努力,我都找不到任何可能导致这种情况的线索。非常感谢任何帮助。

两者都使用Excel 2010

2 个答案:

答案 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