我已经为在Windows 7/Office 2010上执行得很好的工作编写了一个vba脚本,只要它在单独的Excel窗口中打开即可。在同一窗口中同时运行其他工作簿会导致错误。这有时候有点麻烦,但没有那么多,人们对它有问题,所以我从来没有花时间去看看它。在背景表上运行Excel vba代码
最近我们的系统已升级到Windows 8和Office 2013,它自动打开单独的Excel窗口,但与旧系统在一个窗口中打开多个工作簿时出现的错误相同。发生该错误是因为我正在处理另一个工作簿,并且活动工作簿不包含VBA工作簿包含的多个工作表。
我可以通过每次代码运行时(每隔15秒)激活VBA工作簿+工作表来解决此问题,但这会强制VBA工作簿位于前端。有没有办法让代码在VBA工作簿上运行,而不是一直强迫它到前台?此时,我无法在任何其他Excel工作表上运行我的VBA工作簿,这非常不方便。任何帮助,将不胜感激!
在这一刻我改变了一些事情
的ThisWorkbook
Private Sub Workbook_Open()
Set WB = ActiveWorkbook
Set WS = WB.ActiveSheet
End Sub
模块MyModule的
Public WB As Workbook
Public WS As Worksheet
模块OtherModule
Sub ColumnNamer()
Dim titleRow As Integer
Dim titlerng As Range
titleRow = 5
Set titlerng = Workbooks(WB).Sheets(WS).Range(Cells(titleRow, 1), Cells(titleRow, 50))
colFind = WorksheetFunction.Match("SEARCH_TAG", titlerng, 0)
End Sub
调用ColumnNam er Sub结果如下(手动翻译(错误:编译错误(预期矩阵/数组))。
评论是不适用于扩展讨论;这个对话已经[转移到聊天](http://chat.stackoverflow.com/rooms/74749/discussion-on-answer-by-etri-run-excel-vba-code-on-background-sheet)。 – Taryn 2015-04-08 19:10:47