Excel:在公式中使用动态文件路径/文件名引用另一个工作簿中的单元格

Excel:在公式中使用动态文件路径/文件名引用另一个工作簿中的单元格

我有 50 名学生,每人都有一本成绩册,上面有许多分数,我正在将这些数据汇编到主跟踪器工作簿中。数据点来自每个学生工作簿中的大约 60 个不同的工作表。我不想为每个学生的行设置一个唯一的公式,而是想使用动态文件路径/文件名。

这是当前设置的简化版本。

STU_01-成绩册.xlsx:

标签1!A1:3.35

工作簿2.xlsx:

A1:01

B1:

    =IFERROR('C:\Grades\STU_01\[STU_01 - Gradebook.xlsx]Tab1'!$A$1,"")

正确输出为“3.35”

现在,当我创建动态文件路径时,我想到了这个:

    ="C:\Grades\STU_" & A1 & "\[STU_" & A1 & " - Gradebook.xlsx]

正确显示为

    C:\Grades\STU_01\[STU_01 - Gradebook.xlsx]

问题 1:在保持动态文件路径/文件名的同时,需要做什么来调用 Tab1!$A$1 的值?

问题 2:问题 1 的答案是否可以在公式中使用,例如我已经在使用的 IFERROR()?

答案1

您可以使用 VBA 编写公式的文本,然后将其分配给.Formula单元格的属性。如下所示:

Sub ActiveFormula()
   Dim tf As String, cel As Range, id As Range
   Application.EnableEvents = False
   Application.DisplayAlerts = False
   Set id = Range("A1", Cells(Rows.Count, "A").End(xlUp))
   On Error Resume Next
   For Each cel In id
      tf = Range("B1").Value & Range("A" & cel.Row).Value & _
      Range("C1").Value & Range("A" & cel.Row).Value & Range("D1").Value
      Range("F" & cel.Row).Formula = tf
   Next cel
   On Error GoTo 0
   Application.DisplayAlerts = True
   Application.EnableEvents = True
End Sub

此处公式的各部分放在单元格中(第一行),但常量部分可能在代码中定义为常量。F假设源文件存在,则结果应位于列中。 来自文本的公式

相关内容