3

我正在关闭的 Excel 工作簿的列中搜索字符串。

以下代码在 MsgBox 上给出了类型不匹配错误。

如果我将该行替换为ret = "'" & wbPath & "[" & wbName & "]" & wsName & "'!" & Range("C3015").Address(True, True, -4150)然后宏会给我一个硬编码的值(在这种情况下,单元格 C3015 处的值)。

如何在关闭的工作簿的列中搜索其他值,而不打开它们?

 Dim wbName As String, wbPath As String, wsName As String

 wbPath = "Path\To\Workbook\"
 wbName = "NameOfWorkbook.xlsb"
 wsName = "NameOfWorkSheet"

 Dim ret As String    

 ret = "'" & wbPath & "[" & wbName & "]" & wsName & "'!" & Range("D:D").Find(What:="SearchColumnDForThisString")

 MsgBox ExecuteExcel4Macro(ret) // <--------- TYPE MISMATCH ERROR
4

1 回答 1

0

如果您在多个宏中使用这本书,您可能希望保持工作簿处于打开状态,您可以执行以下操作来打开和隐藏它。您还可以将工作簿设置为公共变量,以便在完成后将其关闭。

Dim Wn as Window
Dim Wb as Workbook

Application.ScreenUpdating = False

Set Wb = Application.Workbooks.Open("your book")

For Each Wn in Wb
    Wn.Visible = False
Next Wn

Application.ScreenUpdating = True
于 2013-08-06T08:34:34.963 回答