发布网友 发布时间:2022-04-21 08:58
共3个回答
热心网友 时间:2023-11-08 12:45
你用function的话,这个是个函数,是个值,当然不能在那儿孤零零的使用。
要这样用,a=char_a("[n]",3),要赋予某个变量。
而sub就不一样了,本身只是个子程序,调用即可。
call sub(a,b)或者sub a,b
修改后的结果,楼主查收:
Sub char_a(q As String, w As Single)
If Len(q) < 0 Or w <= 0 Then
MsgBox "函数参数错误"
Exit Sub
Else
With UserForm1 '估计楼主是在某个窗体中使用的,姑且定为userform1
i = .TextBox1.SelStart
n = Left(.TextBox1.Value, .TextBox1.SelStart)
m = Right(.TextBox1.Value, Len(.TextBox1.Value) - .TextBox1.SelStart)
.TextBox1.Value = n & q & m
.TextBox1.SelStart = i + w
End With
End If
End Sub
各个模块使用如下:
Private Sub Label1_Click()
Call char_a("[n]", 3)
End Sub
Private Sub Label2_Click()
Call char_a("[p##]", 4)
End Sub
Private Sub Label3_Click()
Call char_a("[mp##]", 5)
End Sub
运行成功!
热心网友 时间:2023-11-08 12:45
function有回传的值 调用的时候写,
dim kkk as integer
kkk=aaa(4)
sub没有回传值,只在方法体内进行代码执行。相当于VC中的void
public sub kkk(byval zzz as integer)
...
end sub
调用的时候写
call kkk(4)
或: kkk(4)
热心网友 时间:2023-11-08 12:46
你函数放在什么地方了??
函数放在模块里的话,最好前面加上public。
因为click代码你肯定放在form里的,如果函数放在模块里的话没有public是调用不到的。