For*_*gic 3 excel vba keyboard-shortcuts
我遇到了一个奇怪的问题,我决定Ctrl + Shift + P
在 VBA 中为我的一个例程分配一个键盘快捷键。此例程假设打开现有的 excel 工作簿,复制一些信息和.SaveAs
另一个名称。
当我在 Visual Basic 编辑器中点击播放时,这实际上运行良好。但是,当我使用 Excel 中的键盘快捷键运行我的代码时,它在打开文档后停止工作。
我在此示例中重现了该问题:
Public Sub WriteData()
Dim templatePath As String
Dim templateWorkbook As Workbook
'it seems to hang on the following line
Set templateWorkbook = Application.Workbooks.Open(templatePath)
With templateWorkbook.Worksheets.Application
.Range("B3") = "Employee name"
.Range("B4") = "Employee first name"
.Range("B5") = "Employee email"
End With
templateWorkbook.SaveAs(ThisWorkbook.Path & "Test")
templateWorkbook.close
End Sub
Run Code Online (Sandbox Code Playgroud)
我正在使用 Excel 2007。
显然,在多次谷歌搜索该特定问题之后,似乎
Application.Workbooks.Open(yourPath)
Run Code Online (Sandbox Code Playgroud)
与快捷键中的Shift键盘键混合是问题所在。如果你看最后一个答案,更准确地说是这个人:
shift 键使 vb 脚本在任何 Open 语句处停止。
所以你有两个解决方案
从快捷方式中删除Shift键并选择另一个
.Open
您可以使用.Add
which 来完成相同的工作,而不是使用,但代码不会挂起。所以如果你这样做,Application.Workbooks.Add(yourPath)
它应该表现得很好。
很有趣的是,虽然,这两个Open
并Add
具有完全相同的行为,当你在看屏幕时运行宏。
编辑: 我找不到任何提及该错误的官方链接。