VBA:Sumif函数不起作用

嗨,我正在写一个代码来根据标准来求和数据。 下面的代码工作完美,但它不会返回值。 代码在这个excel上工作(= SUMIF($B$1:$DC$1,p,B2:DD2) 。原因是标准P需要双引号。如果将双引号添加到P ,任何build议将被赞赏

 Sub ashok() Dim LR As Long Dim Rg, Rg1 As Range ActiveSheet.Range("a1").Select LR = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row ActiveCell.Columns("A:A").EntireColumn.Select Selection.NumberFormat = "0" ActiveSheet.Range("a1").Select Set Rg = Range("b1", ActiveSheet.Range("A1").End(xlToRight)) Set Rg1 = Range("b2", ActiveSheet.Range("A2").End(xlToRight)) Range("a1").End(xlToRight).Select With ActiveCell.Offset(1, 1).Resize(LR) .Formula = "= SumIf(" & Rg.Address(True, True) & "," & "P" & "," & Rg1.Address(False, False) & ")" End With End Sub 

你的问题的答案是使用Chr(34)

 .Formula = "= SumIf(" & Rg.Address(True, True) & "," & Chr(34) & "P" & Chr(34) & "," & Rg1.Address(False, False) & ")" 

然而 ,你有太多的(不必要的,应该远离)使用SelectActiveSheetActiveCellSelection

如果您使用完全限定的对象,您的代码如何显示的示例:

 With Sheets("Sheet3") ' <-- replace with your sheet's name LR = .Cells(.Rows.Count, "A").End(xlUp).Row .Columns("A:A").EntireColumn.NumberFormat = "0" Set Rg = .Range("B1", .Range("A1").End(xlToRight)) '<-- NOT SURE this make sense ! Set Rg1 = .Range("B2", .Range("A2").End(xlToRight)) '<-- NOT SURE this make sense ! ' etc. etc. End With ' closing the With