Excel 如何在VBA中创建求和函数

Excel 如何在VBA中创建求和函数,excel,vba,Excel,Vba,如何在VBA中使用求和函数,我正在尝试下面的部分,但似乎不起作用 temp=Application.run("Sum",range("A1").value,range("A2").value) Range("A1").value=temp i、 e 如果A1=3和A2=3 我希望最终值为9。使用 Application.WorksheetFunction.Sum(Range("A1"),Range("A2")) 请注意,如果您不在前面说明工作表名称,那么它将隐式使用当前的Activeshee

如何在VBA中使用求和函数,我正在尝试下面的部分,但似乎不起作用

temp=Application.run("Sum",range("A1").value,range("A2").value)
Range("A1").value=temp
i、 e 如果A1=3和A2=3 我希望最终值为9。

使用

Application.WorksheetFunction.Sum(Range("A1"),Range("A2"))
请注意,如果您不在前面说明工作表名称,那么它将隐式使用当前的
Activesheet
,这可能并不总是您想要的

您可以使用
With
语句提供父图纸参考,例如

With ThisWorkbook.Worksheets("Sheet1")
  temp = Application.WorksheetFunction.Sum(.Range("A1"),.Range("A2"))
End With
正如你在前面的问题中所注意到的:3+3等于6

如果您想要乘法,请执行以下操作:

temp = .Range("A1") * .Range("A2")
或者


用于按宏的名称运行宏并传递所需的参数。除非您有一个名为“
”Sum“
”的宏,否则我很惊讶这行代码被编译了。我也不喜欢宏以函数命名。这令人困惑。使用如上所示的
工作表功能
方法既美观又清晰。

使用

Application.WorksheetFunction.Sum(Range("A1"),Range("A2"))
请注意,如果您不在前面说明工作表名称,那么它将隐式使用当前的
Activesheet
,这可能并不总是您想要的

您可以使用
With
语句提供父图纸参考,例如

With ThisWorkbook.Worksheets("Sheet1")
  temp = Application.WorksheetFunction.Sum(.Range("A1"),.Range("A2"))
End With
正如你在前面的问题中所注意到的:3+3等于6

如果您想要乘法,请执行以下操作:

temp = .Range("A1") * .Range("A2")
或者


用于按宏的名称运行宏并传递所需的参数。除非您有一个名为“
”Sum“
”的宏,否则我很惊讶这行代码被编译了。我也不喜欢宏以函数命名。这令人困惑。如上图所示,使用
工作表功能
方法既美观又清晰。

您也可以尝试此方法

Sub Sum_num()
 Dim temp As Integer
 temp = Range("A1") + Range("A2")
 MsgBox temp
End Sub
你也可以试试这个

Sub Sum_num()
 Dim temp As Integer
 temp = Range("A1") + Range("A2")
 MsgBox temp
End Sub

根据我的测试,请尝试以下VBA代码:

Sub sum()
    Dim myRange As Range
    Dim tmp As Long
    Set myRange = Worksheets("Sheet1").Range("A1:A2")
    tmp = Application.WorksheetFunction.sum(myRange)
    Worksheets("Sheet1").Range("A3") = tmp
End Sub

有关详细信息,请查看:

根据我的测试,请尝试以下VBA代码:

Sub sum()
    Dim myRange As Range
    Dim tmp As Long
    Set myRange = Worksheets("Sheet1").Range("A1:A2")
    tmp = Application.WorksheetFunction.sum(myRange)
    Worksheets("Sheet1").Range("A3") = tmp
End Sub
有关更多信息,请查看:


对不起,这是一个很快的问题,应该是3*3的总和

所以你不需要求和,而是要单元格的乘积

使用
工作表function.Product(范围,范围2,…)
而不是sum,该函数允许多个范围作为参数


对不起,这是一个很快的问题,应该是3*3的总和

所以你不需要求和,而是要单元格的乘积



使用
工作表function.Product(范围,范围2,…)
而不是sum,该函数允许多个范围作为参数

3和3之和是9?抱歉的可能重复,是一个快速的重复,是3*3之和,3是9?抱歉的可能重复,是一个快速的重复,是3*3之和感谢您到目前为止的所有回复,如果我创建了我自己的名为CapFloor的函数,我可以使用“Application.worksheetFunction.Product”在VBA中调用它吗我问的主要问题是在这个链接上:它会让你对我正在尝试做的事情有一个更详细的了解。我同意你对应用程序所说的。run,它说第一个条件叫做macro,我不知道它们指的是什么。说到这里,该函数是由开发团队创建的,因此当我打开excel时,我有一个名为CapFloor的函数,该函数是创建的,我可以通过键入单元格“=CapFloor()”手动调用它,它需要16个输入,如果您转到此链接……您将看到我的主要问题是什么,我只是没有得到任何牵引与它,所以张贴这一个,以了解如何调用在vba等函数的想法。链接是嗨,我回答你提出的问题,而不是你的其他问题上面。对于数字的乘积(本例中为9),请使用我在底部显示的语法。对于Application.Run方案,工作簿中必须存在一个名为引用的第一个参数的宏。如果您的开发团队开发了一个名为Sum的宏,那么您需要注意这一点。我会说1)不要称之为Sum,因为它是一个已有的函数,这会使事情变得混乱2)当运算是乘法时不要称之为Sum。这充其量只是误导。感谢您迄今为止的所有回复,如果我创建了自己的函数CapFloor,我可以使用“Application.worksheetFunction.Product”在VBA中调用它吗我问的主要问题是在这个链接上:它会让你对我正在尝试做的事情有一个更详细的了解。我同意你对应用程序所说的。run,它说第一个条件叫做macro,我不知道它们指的是什么。说到这里,该函数是由开发团队创建的,因此当我打开excel时,我有一个名为CapFloor的函数,该函数是创建的,我可以通过键入单元格“=CapFloor()”手动调用它,它需要16个输入,如果您转到此链接……您将看到我的主要问题是什么,我只是没有得到任何牵引与它,所以张贴这一个,以了解如何调用在vba等函数的想法。链接是嗨,我回答你提出的问题,而不是你的其他问题上面。对于数字的乘积(本例中为9),请使用我在底部显示的语法。对于Application.Run方案,工作簿中必须存在一个名为引用的第一个参数的宏。如果您的开发团队开发了一个名为Sum的宏,那么您需要注意这一点。我会说1)不要称之为Sum,因为它是一个已有的函数,这会使事情变得混乱2)当运算是乘法时不要称之为Sum。这充其量是误导性的。谢谢你的回答,我问的一个更具体的问题是在这个链接上:谢谢你的回答,我问的一个更具体的问题是在这个链接上:测试有效,但不是我创建的函数,请你转到这个链接,你会看到我创建自己的函数的意思,但不会以上述方式工作。测试工作正常,但不是针对我创建的函数,请转到此链接,您将看到我的意思,因为我创建了自己的函数,但不会以上述方式工作。请单击