VBA; 这是什么意思,当子程序标题后面的括号中有参数?

在过去的18个月里,我写了大约10个简单的macros,我想比在VBA编程中做的更多。

在我写的子程序中没有任何子程序标题后面的括号中有参数。

我发现这个代码( 在这里find )在stackoverflow。 它用来查找Excel工作表中包含数据的最后一行。 但是在子程序名称后面的括号中有一些参数/参数(请解释其中的差异),这是我从未见过的。

这些论据是什么意思? 我无法弄清楚这一点。

Sub GetLastRow(strSheet, strColumn) Dim MyRange As Range Dim lngLastRow As Long Set MyRange = Worksheets(strSheet).Range(strColum & "1") lngLastRow = Cells(Rows.Count, MyRange.Column).End(xlUp).Row End Sub 

另一件我不明白的是为什么需要创build“MyRange”variables。 这是必要的还是有办法简化这个代码,摆脱“MyRange”variables和使用Worksheets("MBank_Statsy").UsedRange属性?

下面你可以看到我想要应用这个代码的工作表。

在这里输入图像说明

我想对你的问题的评论可能已经给你提供了你所需要的所有信息,说明为什么事情是按照他们的方式完成的,但是如果你感兴趣的话,整个子程序可以简化为:

 Function GetLastRow(strSheet, strColumn) GetLastRow = Cells(Rows.Count, Worksheets(strSheet).Range(strColumn & "1").Column).End(xlUp).Row End Function 

注意:这是一个function。 为了找出最后使用的单元格Sheet1,列“C”,例如,你会做这样的事情:

 lastrowused = GetLastRow("Sheet1","C") 

我怀疑最初的例程是从最后一行开始的(也许它find了最后一个单元格,并且做了一些事情),并且已经被剥夺了只是取回最后一行,但没有想到减less不必要的指令。