【发布时间】:2020-09-29 03:55:21
【问题描述】:
我正在尝试让这段代码正常工作:
Sub GetExternalData()
Dim wbPath As String, WorkbookName As String
Dim WorksheetName As String, CellRef As String
Dim Ret As String, i As Long, N As Long
For i = 1 To Sheets("x").Cells(Rows.Count, 1).End(xlUp).Row
wbPath = Sheets("x").Cells(i, 1).Value
WorkbookName = Sheets("x").Cells(i, 2).Value
WorksheetName = Sheets("x").Cells(i, 3).Value
CellRef = Sheets("x").Cells(i, 4).Value
Ret = Application.WorksheetFunction.CountA("'" & wbPath & "[" & WorkbookName & "]" & _
WorksheetName & "'!" & Range("C:C").Select)
Sheets("x").Cells(i, 5).Value = ExecuteExcel4Macro(Ret)
Next i
End Sub
基本上,我在第 1 列中有一个文件夹路径,在第 2 列中有文件名,在第 3 列中有工作表名称。我想拿这些并在参考文件的C列中找到项目数。
目前,当列中有 30 个值时,方程仅输出值 1。想知道我调用COUNTA 函数的方式是否有问题,其结果后来在ExecuteExcel4Macro 中使用。最初它只是为了调用 ref 文件中的特定值(C2 处的值),它确实有效。
【问题讨论】:
-
您混合了不同的概念:您不能将任何工作表函数传递给
ExecuteExcel4Macro并让它评估该公式 - 它必须是有效的 XL4 宏函数。请参阅 - exceloffthegrid.com/download/4095 您可能需要打开每笔罚款才能进行计数。