Excel VBA将参数传递给方法vs中的参数:=
我学习了java和C,现在我正在尝试学习VBA for excel,但对于将参数传递给VBA方法,我有点困惑 当我们在C中传递参数时,我们会: 但在vba中,当我使用record宏学习时,它给了我这一行 ActiveWorkbook.Names.Add Name:=“NewName”,referestor1C1:=“Sheet1!C8” 如果我试图在没有记录功能的情况下使用方法Excel VBA将参数传递给方法vs中的参数:=,excel,vba,function,methods,arguments,Excel,Vba,Function,Methods,Arguments,我学习了java和C,现在我正在尝试学习VBA for excel,但对于将参数传递给VBA方法,我有点困惑 当我们在C中传递参数时,我们会: 但在vba中,当我使用record宏学习时,它给了我这一行 ActiveWorkbook.Names.Add Name:=“NewName”,referestor1C1:=“Sheet1!C8” 如果我试图在没有记录功能的情况下使用方法Add,我会键入 ActiveWorkbook.Names.Add(“NewName”,“Sheet1!C8”) 让我
Add
,我会键入
ActiveWorkbook.Names.Add(“NewName”,“Sheet1!C8”)
让我困惑的是,有时我们像java/C一样将参数传递给方法,例如:
单元格(Rows.count,1)
那么我们什么时候使用:=
,什么时候像在java/C中那样传递参数
谢谢如果您按顺序传递所有必需的参数,则不需要命名参数(java/C样式)。如果跳过可选参数(依赖于它们的默认值)或按声明顺序传递参数,则需要命名这些参数 要使用和说明这一点,请执行以下操作:
变暗r为长,c为长
r=5
c=8
'有序单元格参数,地址中的前2个参数从默认值更改
调试。打印单元格(r,c)。地址(0,0)'o这太完美了!当我搜索Hanks时,我找不到这篇文章,现在有意义了编辑:我在microsoft.com上试用了一个例子:subpassargs(strName为字符串,intAge为整数,dteberth为日期)Debug.Print strName,intAge,dteberth End Sub
PassArgs(“Mary”,29,#2/21/1969#)
“这给了我一个错误”,但是,如果我做了PassArgs“Mary”,29、#2/21/1969#
或PassArgs strName:=“Mary”,intAge:=29,dteberth:=“2/21/1969”
都可以
void Foo(int i)
{
// Do things
}
void Bar()
{
int temp = 1;
Foo(temp);
}
Dim r As Long, c As Long
r = 5
c = 8
'ordered Cells args, first 2 args in Address changes from defaults
Debug.Print Cells(r, c).Address(0, 0) '<~~ H5
'out-of-order Cells args
Debug.Print Cells(Columnindex:=c, RowIndex:=r).Address(0, 0) '<~~ still H5
'out-of-order Cells args and only the 4th arg for .Address
Debug.Print Cells(Columnindex:=c, RowIndex:=r).Address(external:=True) '<~~ [Book2]Sheet3!$H$5