Excel VBA 中 SUMIFS、表格和变量的公式组合



我正试图循环遍历表的Headers,然后填充如下所述的公式:

Dim headerRng As Range

For Each headerRng In IndMetricsSht.ListObjects(TableName2).Range.Rows(1).Cells
Debug.Print headerRng
If headerRng.Value <> "Function" And headerRng.Value <> "Team Members" And headerRng.Value <> "Accuracy %" Then
IndMetricsSht.ListObjects(TableName2).ListColumns(headerRng.Value).DataBodyRange.Select
Selection.FormulaR1C1 = "=SUMIFS(INDIRECT(" & Chr(34) & TableName & Chr(34) & " & ""["" & [@[Team Members]] & CHAR(10) & ""Volumes"" & ""]"")," & Chr(34) & TableName & Chr(34) & " & ""["" & [@[Sub-Function]] & ""]"",LEFT(" & Chr(34) & headerRng.Value & Chr(34) & ",FIND(""_""," & Chr(34) & headerRng.Value & Chr(34) & ")-1))" 'I'm facing error (application object error)
End If
Next

Excel工作表中的实际公式如下所示:

=SUMIFS(INDIRECT("IM_012022" & "[" & [@[Team Members]] & CHAR(10) & "Volumes" & "]"),IM_012022[Sub-Function],LEFT(Consolidated_012022[[#Headers],[Corporate Treasury_Volumes]],FIND("_",Consolidated_012022[[#Headers],[Corporate Treasury_Volumes]])-1))

我试图使用循环概念为每个标头复制相同的公式,但在该公式中的某些地方,我遗漏了。

Dim HeaderRng As Range

For Each HeaderRng In IndMetricsSht.ListObjects(TableName2).Range.Rows(1).Cells
Debug.Print HeaderRng
If HeaderRng.Value <> "Function" And HeaderRng.Value <> "Team Members" And HeaderRng.Value <> "Volumes" And Not (HeaderRng.Value Like "*Errors") And HeaderRng.Value <> "Accuracy %" Then
IndMetricsSht.ListObjects(TableName2).ListColumns(HeaderRng.Value).DataBodyRange.Select
Selection.FormulaR1C1 = "=SUMIFS(INDIRECT(" & Chr(34) & TableName & Chr(34) & " & ""["" & [@[Team Members]] & CHAR(10) & ""Volumes"" & ""]""),INDIRECT(" & Chr(34) & TableName & Chr(34) & " & ""[Sub-Function]""),LEFT(" & Chr(34) & HeaderRng.Value & Chr(34) & "," & InStr(1, HeaderRng.Value, "_") - 1 & "))"
End If
Next

最新更新