Excel 2016 VBA工作簿激活,但随后停用
我有一个奇怪的情况,我还没有找到解决办法 我正在处理需要打开的多个工作簿(比如3个工作簿)上的大量数据。我需要一个用户表单,以便能够与所有3个工作簿进行交互 我已经制作了一个组合框,当初始化userform时,它会将工作簿的名称添加到组合框中:Excel 2016 VBA工作簿激活,但随后停用,excel,combobox,userform,vba,Excel,Combobox,Userform,Vba,我有一个奇怪的情况,我还没有找到解决办法 我正在处理需要打开的多个工作簿(比如3个工作簿)上的大量数据。我需要一个用户表单,以便能够与所有3个工作簿进行交互 我已经制作了一个组合框,当初始化userform时,它会将工作簿的名称添加到组合框中: '* initialize the userform *' Private Sub UserForm_Initialize() Dim wb As Workbook '* get the name of all the workbook
'* 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
Private Sub PrimaryBook\u组合框\u Change()
Application.ScreenUpdating=True
将wb设置为工作簿
如果Me.PrimaryBook\u组合框“”那么
Set wb=工作簿(Me.PrimaryBook\u ComboBox.Text)
wb.激活
如果结束
Application.ScreenUpdating=False
端接头
(此用户表单中有两个引用编辑)
当我在组合框中选择另一个工作簿时,它会将该工作簿放在最前面。但当我点击其中一个参照编辑框时,它会立即返回到最初打开的工作簿
还有一部分我不明白,当我在Excel 2010中加载它时,它是完美的。我可以选择所需的工作簿并单击参照编辑,该工作簿将保持激活状态
有什么我遗漏的吗?有什么我没有想到的提示和/或技巧吗
谢谢[删除,发布的解决方案没有解决问题]应用程序屏幕更新是否应该设置为False然后设置为True?你有另一种方式,我在调用表单的宏中将其关闭,当表单卸载时,我将其重新打开。但我需要在激活工作簿时打开它,以便它显示在前面。然后我立即将其关闭(如图所示)@RADO update:似乎无论哪个工作簿处于活动状态(在前面打开),都是用户表单绑定的工作簿。如果我前面有Book3并运行userform,当我将book更改为book2时,它将激活它,但一旦我在userform上单击其他地方,它就会直接返回Book3。