VBA - 添加新列,然后复制单元格,然后对单元格求和
VBA - Add new Column then COPY cells and then SUM cells
我正在尝试创建一个新列,将多个值合并到一个列中。下面的代码在我需要的地方创建一个新列没有问题。
但是,在每个新创建的列中,我希望我的代码对同一行中的前 5 个单元格求和。它目前有效,但是是静态的(在下面的示例中新列是 G,它求和 B:F)。我想我需要内置某种偏移函数,以允许它求和的范围是动态的(前 5 列),因为它循环遍历整个 sheet.
此外,我希望它能将第 1-9 行的 Header 信息从新列左侧的列复制到新列中,然后放置单词 "Combo"进入新列的第 10 行。
Office 2013
任何对此努力的帮助都会很棒。
谢谢
Dim currentColumn As Integer
Dim columnHeading As String
For currentColumn = Sheets("SLTData").UsedRange.Columns.Count To 2 Step -1
columnHeading = Sheets("SLTData").UsedRange.Cells(10, currentColumn).Value
'CHECK WHETHER TO KEEP THE COLUMN
Select Case columnHeading
Case "PD.G0100", "PD.G0500", "PD.G0800", "PD.G0900", "PD.G1000", "PD.G0300", "PD.G0400", "PD.G0150", "PD.G0600"
'Do nothing
Case Else
If InStr(1, _
Sheets("SLTData").UsedRange.Cells(10, currentColumn).Value, _
"Homer", vbBinaryCompare) = 0 Then
Sheets("SLTData").Columns(currentColumn).Insert
For i = 11 To Cells(Rows.Count, "B").End(xlUp).Row
Range("G" & i) = WorksheetFunction.Sum(Range("B" & i), Range("C" & i), Range("D" & i), Range("E" & i), Range("F" & i))
Next i
End If
End Select
Next
而不是 Range("G" & i)
使用 Cells(row, column)
(行和列都是整数)。总结它剩下的 5 个单元格:Cells(row, column) = WorksheetFunction.Sum(Range(Cells(row, column-5), Cells(row, column-1)))
我正在尝试创建一个新列,将多个值合并到一个列中。下面的代码在我需要的地方创建一个新列没有问题。
但是,在每个新创建的列中,我希望我的代码对同一行中的前 5 个单元格求和。它目前有效,但是是静态的(在下面的示例中新列是 G,它求和 B:F)。我想我需要内置某种偏移函数,以允许它求和的范围是动态的(前 5 列),因为它循环遍历整个 sheet.
此外,我希望它能将第 1-9 行的 Header 信息从新列左侧的列复制到新列中,然后放置单词 "Combo"进入新列的第 10 行。
Office 2013
任何对此努力的帮助都会很棒。 谢谢
Dim currentColumn As Integer
Dim columnHeading As String
For currentColumn = Sheets("SLTData").UsedRange.Columns.Count To 2 Step -1
columnHeading = Sheets("SLTData").UsedRange.Cells(10, currentColumn).Value
'CHECK WHETHER TO KEEP THE COLUMN
Select Case columnHeading
Case "PD.G0100", "PD.G0500", "PD.G0800", "PD.G0900", "PD.G1000", "PD.G0300", "PD.G0400", "PD.G0150", "PD.G0600"
'Do nothing
Case Else
If InStr(1, _
Sheets("SLTData").UsedRange.Cells(10, currentColumn).Value, _
"Homer", vbBinaryCompare) = 0 Then
Sheets("SLTData").Columns(currentColumn).Insert
For i = 11 To Cells(Rows.Count, "B").End(xlUp).Row
Range("G" & i) = WorksheetFunction.Sum(Range("B" & i), Range("C" & i), Range("D" & i), Range("E" & i), Range("F" & i))
Next i
End If
End Select
Next
而不是 Range("G" & i)
使用 Cells(row, column)
(行和列都是整数)。总结它剩下的 5 个单元格:Cells(row, column) = WorksheetFunction.Sum(Range(Cells(row, column-5), Cells(row, column-1)))