我的代码中的应用程序定义或对象定义错误,不明白为什么

时间:2014-08-21 21:01:05

标签: excel-vba vba excel

我正在尝试使用.formulaR1C1来总结我工作簿主表上不同工作表的值。 每次我运行我的代码时,它都会在输入公式的最后一位出错。

代码:

For cRow = 9 To row
    For Each WS In Worksheets
        If Left(WS.Name, 5) <> "Total" Then
            If Left(WS.Name, InStr(WS.Name, " ") - 1) = "December" Then
                ytdSheet.Cells(cRow, 2).FormulaR1C1 = "=SUM(" & ytdSheet.Cells(cRow, 2).Value & "'" & WS.Name & "'!RC)" 'HERE IS WHERE ERROR OCCURS!!!
            Else
                ytdSheet.Cells(cRow, 2).Value = ytdSheet.Cells(cRow, 2).Value & "'" & WS.Name & "'!RC,"
            End If
        End If
    Next WS
Next cRow

我觉得我错过了一些简单的东西,但我无法理解。

1 个答案:

答案 0 :(得分:0)

好吧我弄清楚它为什么不起作用!我的代码放在一个前导'但是在单元格中,它将其读作“将其设为文本条目”,因此它不会显示在debug.print中。

我修改了代码,使用数组而不是单元格来构建字符串,然后使用formulaR1C1行输出到单元格。

For cRow = 9 To row
    For Each WS In Worksheets
        If Left(WS.Name, 5) <> "Total" Then
            If Left(WS.Name, InStr(WS.Name, " ") - 1) = "December" Then
                ytdSheet.Cells(cRow, 2).FormulaR1C1 = "=sum(" & sArr(1) & "'" & WS.Name & "'!R" & cRow & "C2)" 'HERE!!!
                'Debug.Print "=" & ytdSheet.Cells(cRow, 2).Value & "'" & WS.Name & "'!R" & cRow & "C2" 'HERE!!!
            Else
                sArr(1) = sArr(1) & "'" & WS.Name & "'!R" & cRow & "C2, "
                Debug.Print sArr(1)
            End If
        End If
    Next WS
Next cRow

就像一个魅力!