我试图做一个sumif公式,但遇到了困难。首先,我想移动到A3行最后一个单元格旁边的单元格。我的第一部分似乎就是这样做的。其次,我想做一个sumif公式(sumif(范围,标准,sum_range)),其中值落在活动单元格上。但是,我似乎无法让形式发挥作用。我的列数可以改变,所以我不能保持不变。我希望范围从G1到最后一个活动列(即JW1或其他值而不是JW),我的标准是字母" M"并且我的总和范围是G3到最后一个活动列,它将匹配我第一个范围中的最后一个活动列。然后,我想自动填充到最后一行,我的第一个范围被锁定,但总和范围没有被锁定。
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 :(得分: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
答案 1 :(得分: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