excel 2007 vba 行中的单元格求和不起作用
excel 2007 vba Sum cells in row not working
我是这个小组的新手,对VBA了解不多。
我在电子表格中有许多工作表。报告中的数据已加载到工作表 'data'。行数可以变化。我的宏需要将某些列从工作表 'data' 复制到另一个名为 'T2' 的工作表。填充 'T2' 后,我需要将单元格 'N' 与 'S' 相加,并将结果放入单元格 'M' 中。这需要在从第 3 行到工作表末尾的每一行上发生。从工作表 'data' 到工作表 'T2' 的 'copy' 函数工作正常,但我就是无法使 SUM 函数工作。我得到的最近的(因为它至少擦除了 "M" 列中单元格的内容)如下所示。有两组命令行被注释掉了。第一个是 'copy' 设置,因为它们工作。第二个是我已经尝试过的 SUM 命令的变体。非常感谢阅读本文。
Sub Copy_range()
Sheets("data").Activate
Dim LastRow As Long
Dim iRow As Long
With ActiveSheet
LastRow = .Range("A1").SpecialCells(xlCellTypeLastCell).Row
End With
' MsgBox LastRow
'Worksheets("data").Range("A1:G" & LastRow).Copy
'Worksheets("T2").Range("E2").PasteSpecial
'Worksheets("data").Range("J1:AA" & LastRow).Copy
'Worksheets("T2").Range("N2").PasteSpecial
With Application.WorksheetFunction
Sheets("T2").Activate
For iRow = 3 To LastRow + 1
'Cells(iRow, "M") = Cells(iRow, "N") + Cells(iRow, "O") + Cells(iRow, "P") + Cells(iRow, "Q") + Cells(iRow, "R") + Cells(iRow, "S")
'ActiveSheet.Cells(iRow, "M") = Application.WorksheetFunction.Sum(Range(Cells(iRow, "N"), Cells(iRow, "S")))
'ActiveSheet.Cells(iRow, "M").Value = Sum((iRow & N):(iRow & S))
' BEST SO FAR: Worksheets("T2").Cells(iRow, "M").Value = Application.Sum(Range(Cells(iRow, "N"), Cells(iRow, "S")))
Worksheets("T2").Cells(iRow, "M").Value = Application.Sum(Range(Cells(iRow, "N"), Cells(iRow, "S")))
'Worksheets("T2").Cells(iRow, "M").Value = "=SUM(" & Range(Cells(iRow, "N"), Cells(iRow, "S")) & ")"
'Range("A1").Formula = "=SUM(" & Range(Cells(2, 1), Cells(3, 2)).Address(False, False) & ")"
Next iRow
End With
End Sub
正在替换
Worksheets("T2").Cells(iRow, "M").Value = Application.Sum(Range(Cells(iRow, "N"), Cells(iRow, "S")))
和
Worksheets("T2").Cells(iRow, "M").FormulaR1C1 = "=SUM(RC[1]:RC[6])"
我认为应该可以。
现在不在我的工作计算机上,所以我无法测试它,但是。我怀疑您的部分问题是您没有指定要求和的单元格位于等号右侧的工作表。就我个人而言,我喜欢始终明确说明我正在使用的工作表和范围,以避免混淆。
我是这个小组的新手,对VBA了解不多。
我在电子表格中有许多工作表。报告中的数据已加载到工作表 'data'。行数可以变化。我的宏需要将某些列从工作表 'data' 复制到另一个名为 'T2' 的工作表。填充 'T2' 后,我需要将单元格 'N' 与 'S' 相加,并将结果放入单元格 'M' 中。这需要在从第 3 行到工作表末尾的每一行上发生。从工作表 'data' 到工作表 'T2' 的 'copy' 函数工作正常,但我就是无法使 SUM 函数工作。我得到的最近的(因为它至少擦除了 "M" 列中单元格的内容)如下所示。有两组命令行被注释掉了。第一个是 'copy' 设置,因为它们工作。第二个是我已经尝试过的 SUM 命令的变体。非常感谢阅读本文。
Sub Copy_range()
Sheets("data").Activate
Dim LastRow As Long
Dim iRow As Long
With ActiveSheet
LastRow = .Range("A1").SpecialCells(xlCellTypeLastCell).Row
End With
' MsgBox LastRow
'Worksheets("data").Range("A1:G" & LastRow).Copy
'Worksheets("T2").Range("E2").PasteSpecial
'Worksheets("data").Range("J1:AA" & LastRow).Copy
'Worksheets("T2").Range("N2").PasteSpecial
With Application.WorksheetFunction
Sheets("T2").Activate
For iRow = 3 To LastRow + 1
'Cells(iRow, "M") = Cells(iRow, "N") + Cells(iRow, "O") + Cells(iRow, "P") + Cells(iRow, "Q") + Cells(iRow, "R") + Cells(iRow, "S")
'ActiveSheet.Cells(iRow, "M") = Application.WorksheetFunction.Sum(Range(Cells(iRow, "N"), Cells(iRow, "S")))
'ActiveSheet.Cells(iRow, "M").Value = Sum((iRow & N):(iRow & S))
' BEST SO FAR: Worksheets("T2").Cells(iRow, "M").Value = Application.Sum(Range(Cells(iRow, "N"), Cells(iRow, "S")))
Worksheets("T2").Cells(iRow, "M").Value = Application.Sum(Range(Cells(iRow, "N"), Cells(iRow, "S")))
'Worksheets("T2").Cells(iRow, "M").Value = "=SUM(" & Range(Cells(iRow, "N"), Cells(iRow, "S")) & ")"
'Range("A1").Formula = "=SUM(" & Range(Cells(2, 1), Cells(3, 2)).Address(False, False) & ")"
Next iRow
End With
End Sub
正在替换
Worksheets("T2").Cells(iRow, "M").Value = Application.Sum(Range(Cells(iRow, "N"), Cells(iRow, "S")))
和
Worksheets("T2").Cells(iRow, "M").FormulaR1C1 = "=SUM(RC[1]:RC[6])"
我认为应该可以。
现在不在我的工作计算机上,所以我无法测试它,但是。我怀疑您的部分问题是您没有指定要求和的单元格位于等号右侧的工作表。就我个人而言,我喜欢始终明确说明我正在使用的工作表和范围,以避免混淆。