EXCEL 2010 VBA 宏停止

EXCEL 2010 VBA Macro Stopping

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

如果 (1) 您从 VBA 中选择 运行 宏或 (2) 从 developer/macros 选择中选择 运行 宏,则宏有效。

宏打开 workbook2 然后宏停止如果我 运行 宏通过快捷方式 (SHIFT_CNTL_U)?

如果快捷方式只调用宏,想知道为什么会停止吗?

下面 VBA 代码的简单示例(宏停止成功执行 Workbooks.Open 命令:

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 引用的 link。问题是,当您在打开任何 Excel 工作簿时按住 Shift 键时,它会阻止宏 运行。这种行为显然会延续到通过热键调用宏。