2014-09-12 25 views
0

我正在嘗試執行sumif公式,但遇到了困難。首先,我要移動到A3行最後一個單元格旁邊的單元格。我的第一部分似乎完成了。其次,我想做一個sumif公式(sumif(range,criteria,sum_range)),其值落在活動單元格上。但是,我似乎無法得到工作的形式。我的列數可以改變,所以我不能保持不變。我希望範圍從G1到最後一個活動列(即JW1或其他值而不是JW),我的標準是字母「M」,我的總和範圍是G3到最後一個活動列,這將匹配我的第一個範圍中的最後一個活動列。然後,我想自動填充到最後一行,我的第一個範圍被鎖定,但總和範圍沒有鎖定。SumIf VBA中帶有變量列的函數

Sub Sumif() 


Dim lastColumn As Range 
Dim NextlastColumn As Range 

lastColumn = Range("G1" & Column.Count).End(xlToRight).Column 
NextlastColumn = Range("G3" & Column.Count).End(xlToRight).Column 
Range("A3").Select 
Selection.End(xlToRight).Offset(, 1).Select 

ActiveCell.Formula = "=SUMIF(lastColumn,{"M"}, NextlastColumn))" 


End Sub 
+0

我不按最後一個要求。您的總和範圍是一個整列,所以填充*下*不會影響範圍是否是絕對的。 – Rory 2014-09-13 07:06:51

+0

我打算我的總和範圍是對一些列的一個行。然後,我的自動填充功能填寫列上具有總和的行,如果功能 – 2014-09-15 19:01:47

+0

我已經完成了我的目標,但有點向後 – 2014-09-15 19:02:13

回答

0

我懷疑你只是想這樣的事情:

Sub Sumif() 

Dim lastColumn As Long 

lastColumn = Cells(1, Columns.Count).End(xlToLeft).Column 
Cells(3, lastColumn + 1).FormulaR1C1 = "=SUMIF(R1C3:R1C" & lastColumn & ",""M"",RC3:RC" & lastColumn & ")" 

End Sub 
+0

是的,這工作! – 2014-09-17 14:09:46

0

我有一個答案,但它不是我想讓它工作的方式。我做了一個正常的總和,如果功能遠離右邊,然後再做一個宏,以後刪除空白列。

Sub Netpay() 
' netpay Macro 

lastRow = Range("A" & Rows.Count).End(xlUp).Row 

    Range("KU1").Select 
    ActiveCell.Value = "Net Pay" 

    Sheets("Sheet1").Select 
    Range("A4:D4").Select 
    Selection.Copy 
    Sheets("Job Cost").Select 
    Range("KU3").Select 
    ActiveCell.FormulaR1C1 = "=SUMIF(R1C8:R1C305,""M"",RC[-299]:RC[-2])" 
    ActiveCell.FormulaR1C1 = _ 
     "=SUMIF(R1C8:R1C305,""M"",RC[-299]:RC[-2])-SUMIF(R1C8:R1C305,""N"",RC[-299]:RC[-2])-SUMIF(R1C8:R1C305,""S"",RC[-299]:RC[-2])-SUMIF(R1C8:R1C305,""T"",RC[-299]:RC[-2])" 
    Range("KU3").Select 
    Selection.AutoFill Destination:=Range("KU3:KU" & lastRow) 
End Sub 

然後將此

Sub DeleteBlankColumns() 

Dim lColumn As Long 
Dim iCntr As Long 
lColumn = 1000 
For iCntr = lColumn To 1 Step -1 
If Cells(1, iCntr) = "" Then 
Columns(iCntr).Delete 
End If 
Next 
End Sub 
+0

一件好事,如果它是你喜歡的,那麼上面的內容會保持公式不變。你仍然可以擊中F2並看到現場公式,而只是該單元中的一個數字就是答案。 – 2014-09-15 21:58:50