Excel 在公式中使用cells函数

Excel 在公式中使用cells函数,excel,vba,excel-formula,Excel,Vba,Excel Formula,假设我们以这段代码为例 Worksheets"Sheets1".Cells(1,4).Formula= "=SUM(Cells(x1,y1):Cells(x2:y2))" 有没有办法让这一切顺利? 这个想法是,如果我把这段代码放在一个子例程中,我可以使求和的范围取决于子例程的结果。 例如,如果我要编写一个子例程来计算有多少个单元格上有数字(例如20个),那么我可以将其用作范围。 像这样的 count = 20 Worksheets"Sheets1".Cells(1,4).Formula

假设我们以这段代码为例

Worksheets"Sheets1".Cells(1,4).Formula= "=SUM(Cells(x1,y1):Cells(x2:y2))"
有没有办法让这一切顺利? 这个想法是,如果我把这段代码放在一个子例程中,我可以使求和的范围取决于子例程的结果。 例如,如果我要编写一个子例程来计算有多少个单元格上有数字(例如20个),那么我可以将其用作范围。 像这样的

count = 20    
Worksheets"Sheets1".Cells(1,4).Formula= "=SUM(Cells(1,1):Cells(count:1)"
我希望这相当于write=SUM(A1:A20)

有可能吗?

像这样吗

Worksheets("Sheets1").Cells(1,4).Formula= _
        "=SUM(" & Cells(1, 1).Resize(count, 1).address & ")"
像这样

Worksheets("Sheets1").Cells(1,4).Formula= _
        "=SUM(" & Cells(1, 1).Resize(count, 1).address & ")"

是的,这看起来很有魅力!但有一个问题,你为什么需要使用地址?@NunoSantos,因为你正在构建一个Excel公式?如果要在
范围
对象上计算
工作表函数.Sum
的结果,则不需要地址,因为该函数可以与
范围
对象一起工作。但在这里,您要拼凑一个表示Excel公式的字符串,而不是计算一个函数;就像您在公式栏中输入了它一样。您不能混合使用VBA语法和公式语法,并期望单元格能够对此进行计算。还需要指出的是,如果您想切换绝对引用,即使用
Address
“A$1”和“A1”之间的差异,您可以在以下内容后使用真/假参数:
单元格(1,1).地址(false,false)
=“A1”
单元格(1,1).Address(true,true)
=“$A$1”-非常方便了解您是否填写了某个范围!是的,这看起来很有魅力!但有一个问题,你为什么需要使用地址?@NunoSantos,因为你正在构建一个Excel公式?如果要在
范围
对象上计算
工作表函数.Sum
的结果,则不需要地址,因为该函数可以与
范围
对象一起工作。但在这里,您要拼凑一个表示Excel公式的字符串,而不是计算一个函数;就像您在公式栏中输入了它一样。您不能混合使用VBA语法和公式语法,并期望单元格能够对此进行计算。还需要指出的是,如果您想切换绝对引用,即使用
Address
“A$1”和“A1”之间的差异,您可以在以下内容后使用真/假参数:
单元格(1,1).地址(false,false)
=“A1”
单元格(1,1).Address(true,true)
=“$A$1”-非常方便了解您是否填写了某个范围!