我对此很新,所以提前道歉
我正在使用Excel中的用户表单,我试图通过使用Call
减少我的代码 - 我有12个按钮都做同样的事情,唯一的区别是每个按钮sub取决于按钮标题。我的问题是我无法想出一种方法来使用我已经在Buttons Sub中声明的String,然后在被调用的Sub中使用它。我知道你可以做到,但我的谷歌搜索技能让我失望:(
有人可以告诉我怎么做吗?希望一切都有意义......
这是我的代码的一小部分,但你得到了这个小说:
Public Sub CommandButton4_Click()
Dim Name As String
Name = CommandButton4.Caption
Call Sort1
End Sub`
另一个(为了试验和错误,也尝试了这个功能)
Public Sub Sort1(Name As String)
Label11.Caption = Name
Sheets(Name).Select
End Sub
答案 0 :(得分:3)
您所指的是 将参数 传递给另一个子例程或函数。假设您想要多次使用函数来获取字符串的第一个字母。这样的一个例子是:
Function LeftOne(StrSample As String) As String
LeftOne = Left(StrSample, 1)
End Function
如果符合要求,上述函数可以在另一个函数或子例程中使用:StrSample
。通过在函数的arguments字段中声明StrSample As String
,您基本上要求对此进行的任何调用都需要将字符串传递给它。其他任何事都会引发错误。
整行LeftOne(StrSample As String) As String
可以理解为:“我是函数LeftOne。传递给我一个字符串,在用它做一些事后我会给你一个字符串。”请注意,名称StrSample
是任意名称。
无论如何,调用上述内容非常简单:
Sub MsgInABox()
Dim StrToFeed As String
StrToFeed = "BK201"
MsgBox LeftOne(StrToFeed) 'Returns B.
End Sub
在您的示例中,如果您想将Name
传递给Sort1
,那么您的尝试绝对正确。
如果有帮助,请告诉我们。
答案 1 :(得分:1)
您可以为sort1过程提供参数名称。
call sort1(name)
或 调用sort1(CommandButton4.Caption)