Excel 2016 VBA工作簿激活但随后停用

时间:2017-06-27 23:27:28

标签: excel excel-vba combobox userform vba

我有一个奇怪的情况,我无法找到解决方案。

我正在处理需要打开的多个工作簿上的大量数据(比方说3个工作簿)。我需要一个Userform才能与所有3个工作簿进行交互。

我已经使ComboBox能够在初始化userform时执行此操作,它会将工作簿的名称添加到Combobox中:

'* initialize the userform *'
Private Sub UserForm_Initialize()
    Dim wb As Workbook

    '* get the name of all the workbooks and add to the combobox '*
    For Each wb In Application.Workbooks
        Me.PrimaryBook_ComboBox.AddItem wb.name
    Next wb

    Me.PrimaryBook_ComboBox = ActiveWorkbook.name
End Sub

更改后,它将激活该工作簿:

Private Sub PrimaryBook_ComboBox_Change()
    Application.ScreenUpdating = True
    Dim wb As Workbook
    If Me.PrimaryBook_ComboBox <> "" Then
        Set wb = Workbooks(Me.PrimaryBook_ComboBox.Text)
        wb.Activate
    End If

    Application.ScreenUpdating = False
End Sub

(此userform中有两个refedits)

当我在组合框中选择另一个工作簿时,它会将该工作簿带到最前面。但是当我点击我的一个RefEdit框时,它会立即返回到先打开的原始工作簿。

这是我不理解的另一部分,当我在Excel 2010中加载它时它完美无瑕。我可以选择我想要的工作簿并单击RefEdit,该工作簿将保持激活状态。

有什么我想念的吗?我没有想到的任何提示和/或技巧?

谢谢

1 个答案:

答案 0 :(得分:0)

[删除,发布的解决方案没有解决问题]