-1
VBA非常新,但在過去的幾周內設法學到了很多東西,並將一些代碼拼湊在一起項目在工作中。循環遍歷第一行,如果單元格值=「項目成本」然後循環遍歷該列並在空白中執行小計
我在循環內掙扎着一個循環。
本質上,我想找到行1中單元格值爲「Item Cost」的每一列,然後循環遍歷該列中的每一行,並將小計放在空白處。
任何解決方案的幫助將不勝感激。它是一個更大的項目的一部分,但我在這個問題上。
代碼: [VBA]
Sub InsertTotals()
Dim sh As Worksheet
Dim rw As Range
Dim RowCount As Integer
RowCount = 0
Set sh = ActiveSheet
For Each rw In sh.Rows
If sh.Cells(rw.Row, 1).Value = "Item Cost" Then
Dim ThisCell As Range
Dim MySum As Double
Set ThisCell = rw.offset(-1)
nxt:
Do While ThisCell <> ""
MySum = MySum + ThisCell
Set ThisCell = ThisCell.offset(1, 0)
Loop
ThisCell.Value = MySum
If ThisCell.offset(1, 0) <> "" Then
Set ThisCell = ThisCell.offset(1, 0)
MySum = 0
GoTo nxt
End If
End If
Next rw
End Sub
[VBA]
對於像這樣的簡單任務,此代碼對我來說顯得非常低效。你基本上遍歷整個工作表兩次。執行一次運行需要多長時間?通過使用SUBTOTAL()工作表函數,您可能可以在不使用VBA的情況下實現目標 – silentsurfer