Vba MS Office-ActiveX按钮切换位置

Vba MS Office-ActiveX按钮切换位置,vba,excel,ms-word,Vba,Excel,Ms Word,这个问题有好几个例子,但这一个是主要的。这与更新有关(我们最显著的问题是KB2726958)。我们的休假电子表格如下所示: 按下灰色的“离开”按钮,您将在此处结束: 所有这些程序都是用VBA编写的(我以前从未使用过VBA,我能在一定程度上理解它) 现在的问题是,在“离开电子表格示例”中使用ActiveX按钮会导致两个按钮“通过电子邮件发送”和“保存”切换功能;通过电子邮件发送尝试保存和保存打开Outlook并创建电子邮件。 这两个功能都完全保留了功能,只是在错误的按钮上 我觉得奇怪的是,指向

这个问题有好几个例子,但这一个是主要的。这与更新有关(我们最显著的问题是KB2726958)。我们的休假电子表格如下所示:

按下灰色的“离开”按钮,您将在此处结束:

所有这些程序都是用VBA编写的(我以前从未使用过VBA,我能在一定程度上理解它)

现在的问题是,在“离开电子表格示例”中使用ActiveX按钮会导致两个按钮“通过电子邮件发送”和“保存”切换功能;通过电子邮件发送尝试保存和保存打开Outlook并创建电子邮件。
这两个功能都完全保留了功能,只是在错误的按钮上

我觉得奇怪的是,指向同一个文件的超链接可以正常工作;按钮没有切换,功能齐全。我对解决方案的唯一提示是,当使用超链接时,它直接打开文件。当使用ActiveX按钮时,它似乎在根据链接到的文件创建新文件。例如,超链接直接打开C:\Report.dotm,而ActiveX按钮打开Document1.doc,模板基于Report.dotm。
我在考虑,也许activeX按钮打开的Word扩展名不正确?但我不确定如何解决这个问题(下面的代码显示activeX控件上的链接文件是.dotm)

更进一步的是,它只会影响一些计算机。。。考虑到现场情况,我们都使用相同图像的同一类型PC…:(

我的问题是,有人知道他们为什么要交换吗?他们位于同一个网络驱动器上,但目录不同。他们需要相同的访问权限。按钮的代码如下: Excel按钮:

Private Sub CommandButton1_Click()
' This button links the excel spreadsheet to the word doc
    Dim wrdApp As Object
    Dim wrdDoc As Object
    Dim i As Integer

    Set wrdApp = CreateObject("Word.Application")
    wrdApp.Visible = True
    Set wrdDoc = wrdApp.Documents.Add("\\networkdrive\directories\Request for Leave.dotm")
End Sub
Word按钮1和2:

Private Sub cmdSend_Click()
' This is the code for the button 'Send by Email'
    MsgBox "Send the following email to your Team Leader/Line Manager", vbInformation
    SendDocumentAsAttachment "", "IPL Request for Leave"
End Sub

Private Sub cmdSave_Click()
' This is the code for 'Save'
    modSend.SaveLeaveForm
End Sub
请注意:上面的注释不在VBA的代码中,我在这个问题中自己编写了它们,以提供清晰性

我已完成的故障排除:
删除所有.exd文件
运行MS修补程序(删除GUI中的所有.exd文件)

下一步是尝试运行与修复ActiveX控件相关的所有6个修补程序,并使用我们已经完成的特定修补程序查看是否修复了该问题。我尚未执行此操作的原因是由于ITIL(更改管理),尽管我今天晚些时候可能会尝试测试此功能

我想要的结果是什么?
理想情况下,我想从外观上了解是什么原因导致这些按钮交换其功能。我有不同的按钮交换场景,其中一些通过删除.exd文件进行修复,而另一些则没有。
通过了解正在发生的事情,我希望我能将知识应用到其他场景中(相同的问题,不同的编码)。

然后,我将能够记录我的发现,这样当我们执行下一轮已知会破坏ActiveX控件的修补程序时,我的组织将知道如何处理它。

因此,下面提到的修补程序已修复了此问题。我还需要测试此修补程序的其他一些问题,但我肯定不应该开始测试这是我学到的教训

从我的工作电子邮件:
我刚刚尝试过使用与ActiveX控件破坏相关的补丁KB2920754。我在培训室的两台电脑上使用过它;两台电脑都有不同的问题:
-第一个按钮已切换(保存尝试发送电子邮件,电子邮件尝试发送保存)
-第二个根本不能使用按钮。
此修补程序修复了需要重新启动或注销并重新登录的w/o问题。我也没有删除任何.exd文件。
但是,它确实指出:
“重要信息:要使此修复程序完全有效,您还必须应用以下Microsoft知识库文章“
总共有6个。
补丁:
1.KB2920754–(我已经成功使用过的)
2.KB2956145
3.KB2956163
4.KB2965206
5.KB2956176

6.KB2956155

尝试总结您的问题。“ThisDocument”中是否有dotm(非普通模块)的代码?注意dotm是一个带有宏的模板。
Documents.Add()
用于基于模板文档创建新文档。您可以从超链接
打开它。此外,宏是否已签名,网络路径是否已添加到受信任的文件夹中?