
我有 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