傢伙嗨,
我一直在使用#1幾個月,並且通常,我設法找到直到現在我所有的VBA挑戰的解決方案:
我需要一些幫助來創建一個宏,這個宏在E列之間的列E上添加了所有值,並用「avg」字。結果應該顯示在顯示「Sum here」標籤的單元格上。 「avg」和「sum here」這兩個文本僅用於舉例說明,「avg」可以替換爲任何其他單詞,「sum here」實際上應該是其上面值的聚合。
真正的挑戰是,範圍在E列的數量是可變的,所以我想找到一個宏,它能夠應付在列E.範圍內的「n」個
最後,列D上的值只是「總計在此」單元上的期望值的示例。
這是我曾嘗試遠:
Sub Macro1()
'
' Macro1 Macro
'
Dim sumhere As Range
Dim startingpoint As Range
Dim endingpoint As Range
'
Range("C17").Select
Selection.End(xlDown).Select
If ActiveCell = "avg" Then
ActiveCell.Offset(rowoffset:=0, columnoffset:=2).Select
Set sumhere = ActiveCell
Set startingpoint = ActiveCell.Offset(rowoffset:=-1, columnoffset:=0)
Selection.End(xlUp).Select
If (ActiveCell.Value) = "Sum here" Then
Set endingpoint = ActiveCell.Offset(rowoffset:=1, columnoffset:=0)
sumhere.Formula = "=sum(range(startingpoint:endingpoint)"
Else
Selection.End(xlUp).Select
If (ActiveCell.Value) = "Sum here" Then
Set endingpoint = ActiveCell.Offset(rowoffset:=1, columnoffset:=0)
sumhere.Formula = "=Sum(Range(startingpoint.adress:endingpoint.adress))"
Else: End If
End If
End If
End Sub
另外,你可以看到,我不知道如何使用變量定義範圍。我最初的想法是將此代碼與某種「do while」或/和「for i = 1 to x」和「next i」結合起來......但我看不出如何合併它。
非常感謝你!
嗨Suances!請告訴我們你試過了什麼? –
只需將總數設置爲0,然後循環遍歷每一行,並且(a)如果列C不是「平均」(或任何您使用的),則將列E的值添加到總數中,或者(b)如果C列是「avg」(或任何您使用的)將總數寫入E列並將總數再次設置爲0。 – YowE3K