VBA将参数传递给方法vs:=中的参数

时间:2015-11-16 05:54:48

标签: excel vba function methods arguments

我学习了java和C,现在我正在尝试学习VBA for excel,但是我对将参数传递给VBA方法感到有点困惑

当我们在C中传递参数时,我们做:

void Foo(int i)
{
    // Do things
}

void Bar()
{
    int temp = 1;
    Foo(temp);
}

但是在vba中,当我使用记录宏来学习时,它给了我这一行。

  

ActiveWorkbook.Names.Add Name:=“NewName”,RefersToR1C1:=“= Sheet1!C8”

如果我尝试使用方法Add而没有记录功能,我会输入

  

ActiveWorkbook.Names.Add(“NewName”,“Sheet1!C8”)

让我感到困惑的是,有时我们会像java / C一样将参数传递给方法,例如:

  

Cells(Rows.count,1)

那么我们什么时候使用:=,我们什么时候才能像java / C一样传递参数?

由于

1 个答案:

答案 0 :(得分:0)

如果按顺序传递所有必需参数,则不需要命名参数(java / C样式)。如果你跳过可选参数(依赖于它们的默认值)或者在声明顺序之外传递参数,那么你需要命名参数。

使用Range.Cells propertyRange.Address property

来说明这一点
for(int i = 0; i < a.length(); i++){
   // Here you need to get JSONObject from JSONArray at Index i.
   JSONOject jj = a.getJSONObject(i);
   //Now you need to get product JSONObject
   JSONObject jsonObj = jj.getJSONObject("product");
   //From jsonObj you get all information about product.
}