如何使用VBA将dynamic公式添加到单元格引用?

我正在尝试使用VBA将dynamic公式添加到单元格。 我已经看到了几个post,但我无法弄清楚我做错了什么。 对象'_Worksheet'失败'的'方法'范围'我得到运行时错误“1004”。 我究竟做错了什么?

Sub AddFormulas() Dim LastNumberRow As Integer Set countBase = Sheet7.Range("CU2") colCount = Sheet7.Range(countBase, countBase.End(xlToRight)).Columns.Count Dim startCount As Integer startCount = 98 For i = 1 To colCount If IsNumeric(Cells(2, startCount + i)) Then Sheet7.Range(3, i).Formula = "=Sheet6!" & Cells(3, startCount + i).Address & "*" & "Sheet7!" & Cells(3, colCount + startCount).Address Else 'Do some stuff End If Next i End Sub 

我已经从下面的评论添加了build议的更改,但不是我得到一个文件资源pipe理器popup窗口。 我已经改变了我的代码,并进行了以下更改:

 If IsNumeric(Sheet7.Cells(2, startCount + i)) Then Set bSum = Sheet7.Cells(3, colCount + startCount) Set bSpr = Sheet6.Cells(3, startCount + i) Sheet7.Cells(3, i).Formula = "=Sheet6!" & bSpr.Address() & "*" & "Sheet7!" & bSpr.Address() 

尝试replaceSheet7.Range(3, i).Formula = ... with: Sheet7.Cells(3, i).Formula = ...

我得到它使用这个解决scheme:

 Sub Formulas() 'Adds the formulas to the worksheet Dim rLastCell As Range Set countBase = Sheet6.Range("CU2") 'Starts at cell CU2 and counts the number of columns to the right that are being used colCount = Sheet6.Range(countBase, countBase.End(xlToRight)).Columns.Count Dim startCount As Integer startCount = 98 'This is column CT For i = 1 To colCount 'Checks to see if the value in row 2 starting at CU is a number, if it is it adds the index-match formula If IsNumeric(Sheet7.Cells(2, startCount + i)) Then bSpr = Sheet6.Cells(3, startCount + i).Address(True, False) Sheet6.Cells(3, startCount + i).Formula = "=INDEX(ORIG_MAT_DATA_ARRAY,MATCH($W3,MAT_RLOE_COLUMN),MATCH(" _ & bSpr & ",MAT_CY_HEAD))" & "/" & "INDEX(ORIG_MAT_DATA_ARRAY,MATCH($W3,MAT_RLOE_COLUMN),MATCH(""Total"",ORIG_MAT_CY_HEAD,0))" End If 'Checks to see if the value in row 2 starting at CU is the word "Total", if it is it adds the sum formula If Sheet6.Cells(2, startCount + i) = "Total" Then startCol = Cells(3, startCount + 1).Address(False, False) endCol = Cells(3, startCount + (colCount - 1)).Address(False, False) Sheet6.Cells(3, colCount + startCount) = "=SUM(" & startCol & ":" & endCol & ")" End If Next i End Sub