我正在嘗試創建一個新列,將多個值合併到一個列中。下面的代碼在我需要的地方創建一個新列沒有問題。VBA - 添加新列,然後COPY單元格,然後SUM單元格
但是,在每個新創建的列中,我希望我的代碼將同一行中的前5個單元求和。它目前工作,但是是靜態的(新的列在下面的例子中是G,它總和B:F)。我想我需要一些內置的Offset函數來允許它總和的範圍是動態的(前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
當'currentColumn'爲'2'時,是否還想將它的左邊的五列(即列「A」,列「0」,列'-A',列'-B'和列'-C',其中只有列'A'將是有效的)?並且請注意,代碼中的'Range','Cells'和'Rows'指的是'ActiveSheet',它可能是或可能不是'Sheets(「SLTData」)'。 (你應該總是限定對「範圍」,「細胞」,「行」等的引用) – YowE3K