我正在尝试编写一个宏,该宏将运行整个工作表并进行相应的计算。
这是我对静态范围的代码:
With .Range("P2:P" & LastRow)
.Formula = "=SUMIF('Sheet2'!A$2:A$530,'Sheet1'!N2,'Sheet2'!B$2:B$530)"
.Value = .Value
Columns("P:P").Select
Selection.NumberFormat = "0.00"
End With
我对我在这里要做的事情有一个基本的想法,但因为我是VBA的新手,我无法弄明白该怎么做。
这是我正在尝试写的当前代码:
With .Range("P2:P" & LastRow)
.Formula = "=SUMIF(Worksheets('Sheet2').Range("A2:A"& LR),'Sheet1'!N2,'Sheet2'!B$2:B$530)"
.Value = .Value
Columns("P:P").Select
Selection.NumberFormat = "0.00"
End With
然而,为此,它一直在给我一个语句结束错误,我想修复它。
此外,LastRow和LR分别包含两个工作表的最后一个单元格编号。
答案 0 :(得分:2)
试试这个。你的语法在SUMIF的第一位有点偏差,而你正在硬编码最后一行。请注意,无需选择。
With .Range("P2:P" & LastRow)
.Formula = "=SUMIF(Sheet2!A$2:A$" & LR & ",'Sheet1'!N2,'Sheet2'!B$2:B" & LR & ")"
.Value = .Value
.NumberFormat = "0.00"
End With