Excel VBA Function 函数 传参问题

Function A(Count As Integer, Temp As Integer)
For Count = 1 To 10
Select Case Temp
Case Is = Count
Exit For
Case Else
Count = Count + 1
End Select
Next
MsgBox "Count =" & Count & ""
End Function

Function B(I As Integer, J As Integer)
MsgBox "Hello "
End Function

Sub Test()
...看图..
End Sub

主要是一三幅比较
单独B(1)行
单独A(1,5)不行
第三幅图就加了A = A + 1 X = A(1,5) 但一点用没有 但加了就解决了
非得把A的值传出去吗 像B就没传吧但行啊

如果没有要求返回值,调用函数的时候就不能带括号,第二个情况直接写 A 1,5就可以了。
好像用call语句就必须带括号,而且也无法返回值
call A(1,5)追问

但是B(1)怎么行啊 他加了()的啊

追答

括号打远了,空了一个空格。而且1只有1个数,在括号里,总体还是当成1个数,就是1条表达式而已,比如,系统不能阻止你写表达式来传递吧?象下面的语句,必须通过的
B (1+10)*100
所以那个括号是个表达式而已,系统识别为表达式,自己加了个空格,就成了 B 1的效果了

追问

顺便问下传数组怎么传啊

test ( Arr() As String )
.........
Sub
Test Arr()
End Sub
行吗
能举个例吗
感谢

追答

函数的参数要带括号,调用参数时传递的参数不带括号。

传递过去后,函数可以用ubound和lbound来判断数组的上下标。

例子

Private Sub Command1_Click()
    Dim b(1 To 20) As Integer
    a b
End Sub

Sub a(arr() As Integer)
    ub = UBound(arr)
    lb = LBound(arr)
End Sub

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-14
问题描述不清楚

vba中如何在一个function中 输入一个参数返回另一个参数
1、首先打开excel在工具栏中找到开发工具,然后打开编辑页面,在页面上输入程序,如图所示,创建一个函数,也是比较方便的。直接使用function。2、然后给函数命名,函数名后面的括号内部需要写上函数的参数,这里有参数可以写,没有参数也可以不写。以求和函数为例,写上两个参数。3、下方定义函数的计算公式...

Excel VBA Function 函数 传参问题
如果没有要求返回值,调用函数的时候就不能带括号,第二个情况直接写 A 1,5就可以了。好像用call语句就必须带括号,而且也无法返回值 call A(1,5)

Excel VBA函数中可选参数问题
再试试使用语句PicInComment(1,400)你这样固定参数的直接将function 改成sub就可以了。function就是可以传参数给它 进行计算的!

Excel 求教一下关于VBA function的用法
'test 是函数名 '括号里面是传入的参数类型 ,byval 是值类型, byref 传引用类型 'as xx 是设置返回值的类型 'test =rng.Text 就是设定这个函数具体返回的什么值 ,相当其它语言 return Function test(ByRef rng As Range) As String test = rng.Text End Function Sub testFunction()'函数的...

通过EXCEL VBA自定义了一个函数,无法把数组传入到函数中。
只能传 单元格,然后转数组。如下 Function MyTest(rng As Range) Dim arr() As Variant Set arr = rng.Value MyTest = UBound(arr)End Function

Excel VBA调用子程序时如何传递参数
用法有三种 1、赋值给变量就要带括号 比如 a = PicInComment (1, 250)2、call PicInComment (1, 250)3、PicInComment 1, 250

excel vba中自定义一个函数,该函数需要用到函数所在的那个单元格的列...
1、使用参数传递 即在编写函数时,手动将当前单元格传递过去。Function myfunction1(rng As range) myfunction = rng.Row & "," & rng.ColumnEnd Function2、用 ActiveCell 属性 Function myfunction2() myfunction = ActiveCell.Row & "," & ActiveCell.ColumnEnd Function3、调用 ThisCell ...

Excel 求教一下关于VBA function的用法
插入模块,然后输入以下程序 Function 数值转换(temp As String)数值转换 = Asc(temp) - 96 End Function 这样就直接得到1了。你可以看附件。其他的话,根据程序的需要,你要合理选择sub和Function。比如一个一个Y=3X,我们先知道了X要知道Y,可以用一个子函数,返回Y的值。这样的话如果这个过程复杂...

excel VBA函数如何返回多个结果到多个单元格中?
1,你再写一个计算函数放到另一个单元格中,或者再次调用这个函数,做两次计算,每次返回一个结果。2,你可以把两个单元格的形参传到函数体内,跟据你的需要,填中不同的值即可。 Function mydd(aData As Range,aDataW As Range)……mydd=array(……)aDataW... = ... End Function ...

vba调用Excel函数为什么提示错误?
错误的参数,也就是说这个函数不是这样用的,没有后面的 单 和 双 的位置,你在工作表里试一下就是知道了。你想表示单双的话还得加上if语句来判断。不过你这个没必要调用工作表函数吧,直接用那个数据除以2看是0还是1来判断单双不行吗?这样代码会简单很多。

相似回答