VBA - 添加新列然后COPY单元格,然后是SUM单元格

时间:2017-06-28 20:42:38

标签: excel vba excel-vba range ms-office

我正在尝试创建一个新列,将多个值合并到一个列中。下面的代码在我需要的地方创建一个新列没有问题。

然而,在每个新创建的列中,我希望我的代码在同一行中对前5个单元格求和。它目前有效,但是是静态的(以下示例中的新列为G,它与B:F相加)。我认为我需要内置一些Offset函数,以允许它总和的Range是动态的(前5列),因为它遍历整个工作表。

此外,我希望将第1-9行中的标题信息从新列的列复制到新列,并将单词“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

1 个答案:

答案 0 :(得分:1)

而不是Range("G" & i)使用Cells(row, column)(行和列都是整数)。总结它剩下的5个单元格:Cells(row, column) = WorksheetFunction.Sum(Range(Cells(row, column-5), Cells(row, column-1)))