MS Office - ActiveX按钮切换位置

时间:2017-04-23 22:48:59

标签: excel vba excel-vba ms-word word-vba

这个问题有几个例子,但这个问题占主导地位。这与更新有关(我们最值得注意的问题是KB2726958)。我们有一个Leave Spreadsheet,如下所示:

Leave Spreadsheet example

按下灰色的“离开”按钮,您最终到达此处:

Leave Word doc

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

现在,问题是使用“离开电子表格”示例中的“ActiveX”按钮'导致2个按钮'通过电子邮件发送'并且'保存'切换功能;通过电子邮件发送尝试保存和保存会打开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 Hotfix(删除GUI中的所有.exd文件)

下一步是尝试使用我们已经完成的特定补丁来运行与修复ActiveX控件相关的所有6个补丁,以查看是否能解决问题。我之所以没有这样做的原因是因为ITIL(变更管理),尽管我今天晚些时候可能会尝试测试。

我之后的结果是什么?
理想情况下,我想了解是什么导致这些按钮从它看起来像交换它们的功能。我有不同的按钮交换方案,其中一些可以通过删除.exd文件来解决,有些则不是。“ 通过了解正在发生的事情,我希望我可以将知识应用到其他场景(同样的问题,不同的编码) 然后,我将能够记录我的发现,这样当我们执行下一轮修补已知会打破ActiveX控件时,我的组织将知道如何处理它。

1 个答案:

答案 0 :(得分:2)

所以下面提到的补丁修复了这个问题。还有一些其他问题我需要测试这个补丁,但我绝对应该从那里开始。经验教训。

来自我的工作电子邮件:
我刚刚尝试使用与ActiveX控件相关的补丁,KB2920754。我在训练室的两台电脑上使用过它;两者都有不同的问题:
- 第一个按钮已经切换(保存尝试发送电子邮件,电子邮件尝试保存)
- 第二个根本无法使用按钮 这个补丁无需重启或退出并重新登录即可解决。我也没有删除任何.exd文件。
但它确实说明了:
“重要说明:要使此修复程序完全有效,您还必须应用以下Microsoft知识库文章”解决方案“部分中列出的Office 2013的其他修补程序”
总共有6个 补丁:
1. KB2920754 - (我成功使用的那个)
2. KB2956145
3. KB2956163
4. KB2965206
5. KB2956176
6. KB2956155