EXCEL 2010 VBA Macro Stopping



我创建了一个EXCEL 2010工作簿(例如工作簿1(,该工作簿有一个宏:(1(打开另一个工作簿(例如,工作簿2(,(2(从工作簿2中提取数据并将信息放入工作簿1 VBA代码的数组中,(3(关闭工作簿2,然后继续运行工作簿1中的宏。

如果(1(从VBA运行宏,或者(2(从开发人员/宏选择运行宏,则宏有效。

如果通过快捷方式(SHIFT_CNTL_U(运行宏,宏将打开工作簿2,然后宏将停止?

若快捷方式只是调用宏,有没有想过它为什么会停止?

下面VBA代码的简单示例(宏停止成功执行工作簿。打开命令:

Sub TESTER()
Dim DataMatrix(5) as integer, i as integer
Dim Analysis(5) as integer
Dim ws As Worksheet, wb As Workbook
'
Set wb = Workbooks.Open("c:workbook2.xlsx")
Sheets("Data").select
Range("A5").select
For i = 0 to 4
DataMatrix(i) = activecell.offset(0,i).value
Next i
wb.close
'    
For i = 0 to 4
Analysis(i) = DataMatrix(i) * 2
Next i
'
end sub

我认为问题出在使用快捷键中的Shift键上。我能够在Excel 2016中复制这种行为。当我从快捷方式中删除Shift键时,它工作得很好。请参阅上面GMalc提到的链接。问题是,当您在打开任何Excel工作簿时按住Shift键时,它会阻止宏运行。这种行为显然会通过热键调用宏。

最新更新