vba中如何在一个function中 输入一个参数返回另一个参数

如下面所列的sub,我希望function可以把RowNumber返回,谢谢指教

Sub Macro2()

Dim RowNumber As Integer
Dim SheetName As String

SheetName = Range("A3")
RowNumber = 找行数(SheetName)
End Sub

Function 找行数(ByVal SheetName As String) As Integer

Sheets(SheetName).Select
RowNumber = Cells.Find(What:="2013年", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Row
MsgBox RowNumber

End Function

1、首先打开excel在工具栏中找到开发工具,然后打开编辑页面,在页面上输入程序,如图所示,创建一个函数,也是比较方便的。直接使用function。

2、然后给函数命名,函数名后面的括号内部需要写上函数的参数,这里有参数可以写,没有参数也可以不写。以求和函数为例,写上两个参数。

3、下方定义函数的计算公式,将最终的输入结果通过弹出对话框的形式显示出来,使用msgbox比较方便。输入完成之后,点击运行。

4、在弹出来的对话框中可以看到整个表格中定义的函数,选择需要运行的函数,点击运行,如图所示。

5、这里可以看到在excel表格中,已经弹出msgbox,显示最终的计算结果,这就是定义的求和函数计算的结果。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-09-03

调用是方法名(参数),通过方法名返回值信息

1、定义一个带参数的方法

Function Test(ByVal s as String)  '定义一个string类型的参数s
    Test = "返回值"       '返回一个字符串"返回值"
End Function

2、参数调用和值返回

Dim rtn '定义一个变量
rtn = Test("2");//传入参数2,返回值赋值给rtn

第2个回答  推荐于2018-02-27
Sub Macro2()

Dim RowNumber As Integer
Dim SheetName As String

SheetName = Range("A3")
RowNumber = 找行数(SheetName)
End Sub

Function 找行数(ByVal SheetName As String) As Long

Sheets(SheetName).Select
找行数 = Cells.Find(What:="2013年", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Row

End Function本回答被提问者和网友采纳
相似回答