【发布时间】:2015-06-10 21:21:52
【问题描述】:
我为在 Windows 7/Office 2010 上表现出色的工作编写了一个 vba 脚本,只要它在单独的 Excel 窗口中打开即可。在同一窗口中同时运行其他工作簿会导致错误。有时这有点麻烦,但并不是人们对此有任何问题,所以我从来没有花时间看它。
最近我们的系统升级到 Windows 8 和 Office 2013,它们会自动打开单独的 Excel 窗口,但会出现与在一个窗口中打开多个工作簿的旧系统相同的错误。发生错误是因为我正在处理另一个工作簿,而活动工作簿不包含 VBA 工作簿包含的多个工作表。
我可以通过在每次代码运行时(每 15 秒)激活 VBA 工作簿+工作表来解决此问题,但这会强制 VBA 工作簿位于前面。有没有办法让代码在 VBA 工作簿上运行,而不是一直强制它到前台?目前我无法在同一台电脑上运行我的 VBA 工作簿作为任何其他 Excel 工作表,这非常不方便。任何帮助将不胜感激!
此时我改变了几件事
这本工作簿
Private Sub Workbook_Open()
Set WB = ActiveWorkbook
Set WS = WB.ActiveSheet
End Sub
模块我的模块
Public WB As Workbook
Public WS As Worksheet
模块其他模块
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
调用 ColumnNamer Sub 会导致以下结果(手动翻译(错误:编译错误(应为矩阵/数组)。
【问题讨论】:
标签: excel vba windows-8 office-2013