Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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 如何在最后一行的右侧输入公式_Excel_Vba_Excel Formula - Fatal编程技术网

Excel 如何在最后一行的右侧输入公式

Excel 如何在最后一行的右侧输入公式,excel,vba,excel-formula,Excel,Vba,Excel Formula,请看下表,我想把小计从最后一行往下放1行。这对于C行和D行(使用下面的代码)效果很好,但是其余的列并不总是每行都有信息 lastrow = Cells(Rows.Count, "C").End(xlUp).Row + 1 Cells(lastrow + 1, 3).Formula = "=sum(C1:C" & lastrow & ")" lastrow = Cells(Rows.Count, "D").End(xlUp).Row + 1 Cells(lastrow + 1, 4

请看下表,我想把小计从最后一行往下放1行。这对于C行和D行(使用下面的代码)效果很好,但是其余的列并不总是每行都有信息

lastrow = Cells(Rows.Count, "C").End(xlUp).Row + 1
Cells(lastrow + 1, 3).Formula = "=sum(C1:C" & lastrow & ")"
lastrow = Cells(Rows.Count, "D").End(xlUp).Row + 1
Cells(lastrow + 1, 4).Formula = "=sum(D1:D" & lastrow & ")"
当我需要将其他小计(以黄色突出显示)全部放在同一行时,如何在其右侧插入公式


只需使用一列确定最后一行(此处使用
列A

此外,总和范围的底部由最后一行(
LR
)指示,但您希望公式的位置在下面两行(因此为
LR+2


Dim ws as Worksheet:Set ws=thiswoolk.Sheets(“Sheet1”)”尝试:


您可以使用
OffSet
,或者由于您已经有了要在其中输入总计的行,只需增加:
单元格中的列值(lastrow+1,4)。公式
。因此,要设置列
E
单元格(lastrow+1,5)的值。公式
。更重要的是,您如何知道总共需要多少列?如果列是静态的,则可以使用
FOR
循环来填充值。如果它们是动态的,则必须让countWorth列指出,这将在VBA中计算总和,并且在手动删除总和行并再次运行代码之前不会反映数据中的任何后续更改。在VBA中计算和与使用VBA编写公式相比,结果有两种完全不同的方法。此外,如果您进行更改并再次运行代码,您将对最后一行的计算产生问题。在获得行计数时,只需添加
+2
,可能值得一试。然后,您不需要每次添加公式时都使用
+2
,然后在执行公式时需要使用
LR-2
。或者可以使用
LR-2
设置另一个变量。无论哪种方式,变量都用于确定此处的两个独立位置(和范围和公式在工作表上的位置),因此它不只是在设置
LR.Offset(2)
时结束。这种方式似乎更直观。如果有更多的代码要遵循,我会证明第二个变量是正确的maybe@urdearboy您可以在一行中编写整个公式:
ws.Range(“C”&LR+2&“:J”&LR+2)。公式=“=Sum(C2:C”&LR&”)
Brilliant!我知道这很简单,只是我想得太多了。非常感谢。
Dim ws as Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1") '<-- Update
Dim LR as Long

LR = ws.Range("A" & ws.Rows.Count).End(xlUp).Row

ws.Range("C" & LR + 2).Formula = "=Sum(C2:C" & LR & ")"
ws.Range("D" & LR + 2).Formula = "=Sum(D2:D" & LR & ")"
Option Explicit

Sub test()

    Dim LastRow As Long, LastColumn As Long, Column As Long

    With ThisWorkbook.Worksheets("Sheet1")

        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row

        For Column = 3 To 10
            .Cells(LastRow + 2, Column) = Application.WorksheetFunction.Sum(.Range(.Cells(2, Column), Cells(LastRow, Column)))
        Next Column

    End With

End Sub