Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 将求和公式理解为for循环中的小计_Excel_Vba_Excel Formula_Sum - Fatal编程技术网

Excel 将求和公式理解为for循环中的小计

Excel 将求和公式理解为for循环中的小计,excel,vba,excel-formula,sum,Excel,Vba,Excel Formula,Sum,我发现了一个在表中创建小计的代码。该公式工作正常,但我不理解小计的总和公式的语法,即: "=SUM(R" & j & "C:R" & i & "C)" R、C:R和C是什么意思?有谁能翻译一下相应的输出,例如=SUMME(E$4:E$4)与这个公式的对应关系吗 这是Excel的小计输出功能: 代码如下: Dim iCol As Integer Dim i As Integer 'Makro f?ngt ab diese Zeilenummer an Dim

我发现了一个在表中创建小计的代码。该公式工作正常,但我不理解小计的总和公式的语法,即:

"=SUM(R" & j & "C:R" & i & "C)"
R
C:R
C
是什么意思?有谁能翻译一下相应的输出,例如
=SUMME(E$4:E$4)
与这个公式的对应关系吗

这是Excel的小计输出功能:

代码如下:

Dim iCol As Integer 
Dim i As Integer 'Makro f?ngt ab diese Zeilenummer an
Dim j As Integer 'Makro geht mit diese Zeilenummer im Loop weiter

Worksheets("Italy").Activate

Application.ScreenUpdating = False
i = 4 'Makro f?ngt ab diese Zeilenummer ab
j = i

'Loops throught Col B Checking for match then when there is no match add Sum
Do While Range("A" & i) <> ""
    If Range("A" & i) <> Range("A" & (i + 1)) Then
        Rows(i + 1).Insert
        Range("A" & (i + 1)) = "Subtotal " & Range("A" & i).Value
        For iCol = 5 To 11 'Columns to Sum
            Cells(i + 1, iCol).Formula = "=SUM(R" & j & "C:R" & i & "C)"
        Next iCol
        Range(Cells(i + 1, 1), Cells(i + 1, 10)).Font.Bold = True
        Range(Cells(i + 1, 1), Cells(i + 1, 10)).Interior.Color = RGB(221, 237, 245)
        i = i + 2
        j = i
    Else
        i = i + 1
    End If
Loop
Application.ScreenUpdating = True
将iCol设置为整数
Dim i为整数“Makro f?ngt ab diese Zeilenumer an”
Dim j作为整数'Makro geht mit diese Zeilenumer im Loop weiter
工作表(“意大利”)。激活
Application.ScreenUpdating=False
i=4'Makro f?ngt ab diese Zeilenumer ab
j=i
'循环通过B列检查匹配,然后在没有匹配的情况下添加和
Do While范围(“A”和“i”)
如果范围(“A”&i)范围(“A”&i+1”),则
行(i+1)。插入
范围(“A”和(i+1))=“小计”和范围(“A”和i).值
对于iCol=5至11'列,求和
单元格(i+1,iCol)。公式=“=SUM(R”&j&“C:R”&i&“C)”
下一个iCol
范围(单元格(i+1,1)、单元格(i+1,10))。Font.Bold=True
范围(单元格(i+1,1),单元格(i+1,10)).Interior.Color=RGB(221237245)
i=i+2
j=i
其他的
i=i+1
如果结束
环
Application.ScreenUpdating=True

希望我理解了你想问的问题。首先,您要初始化两个变量,在您的例子i和j中,它们将帮助您遍历单元格

i和j将替换求和公式中的第一、第二、第三行,依此类推。因此,您将使用
=SUM(R1&“C:R”&C:R”&i&“C)
,而不是
=SUM(R1&“C:R”&4C)


A1和R1C1之间的区别在于您看待它和引用它的方式。使用R1C1表示法可以帮助您更轻松地遍历单元格。转到A1的下一个单元格(右侧)类似于:R1C2。

请注意,行/列计数变量的类型应为
Long
Excel的行数超过
Integer
所能处理的行数。您有大量的范围对象(范围、单元格、行),它们不指定wb&ws。这肯定迟早会引起错误。另外,请阅读插入公式和第1列的
R=row
C=Column
R6=row 6
RC1=row。我想excel中有一个内置的公式叫
小计
,可以让你这么做。难道
公式
不需要是
。公式1c1