VBA循环来抽取单元格地址并将它们汇总到另一个主电子表格的单元格中

我有下面的代码,但它并没有达到我想要的地方:

Public Sub populateFile() Dim wbk As Workbook Dim fileName As String Dim path As String Dim pulledFormula As String Dim pulledPath As String Application.ScreenUpdating = False Application.DisplayAlerts = False Application.EnableEvents = False Application.Calculation = xlCalculationManual path = "C:\Users\Bob\Desktop\Source Files\" fileName = Dir(path & "*.xlsx*") Do While fileName <> "" Set wbk = Workbooks.Open(path & fileName, UpdateLinks:=False) j = 24 For i = 8 To 16 With Workbooks("MasterFile.xlsm").Sheets("Sheet1") If Application.WorksheetFunction.CountA(Workbooks(fileName).Sheets("SummaryTab").Range(Cells(i - 1, j - 21), Cells(i - 1, j - 13))) > 0 Then .Cells(i, j - 10).Value = fileName & vbNewLine & .Cells(i, j - 10).Value For j = 15 To 23 pulledFormula = "+" & Application.WorksheetFunction.Index(Workbooks(fileName).Sheets("SummaryTab").Range("C6:K164"), _ Application.WorksheetFunction.Match(.Cells(i, 1), Workbooks(fileName).Sheets("SummaryTab").Range("A6:A164"), 0), _ Application.WorksheetFunction.Match(.Cells(6, j), Workbooks(fileName).Sheets("SummaryTab").Range("C5:K5"), 0)).Address(External:=True) .Cells(i, j).Value = pulledFormula & .Cells(i, j).Formula Next j End If End With Next i wbk.Close fileName = Dir Loop Application.ScreenUpdating = True Application.DisplayAlerts = True Application.EnableEvents = True Application.Calculation = xlCalculationAutomatic End Sub 

所以我试图从目录中的一堆文件拉相关(基于索引/匹配)单元格地址。 下一步是迭代地将地址和+符号一起添加,希望最终主电子表格可以在一个单元中具有来自所有打开的文件的所有相关单元的总和(并且对于一堆细胞)。 确切的问题是,Excel拒绝评估生成的连接公式。 真的很感激任何想法如何改善这个代码!

谢谢!

注意:我需要保留主文件单元格中的单元格地址,以便其他人可以将这些地址跟踪给文件,所以我不能使用Evaluate公式。

这听起来像是一个重新计算或非重新考虑的问题。

您可以使用这个简单的macros在当前select的范围上应用F2 + Enter:

 Sub ApplyF2() Selection.Value = Selection.FormulaR1C1 End Sub 

你能修改这个技术来满足你的需要吗?