Handler:
Select Case Err.Number ' Analyze error code and load message.
Case ErrInvalidFileName, ErrBadFileName
strMsg = "Your file specification was "
strMsg = strMsg & "invalid; try another."
Case mnErrDriveDoorOpen
strMsg = "Close the disk drive door and "
strMsg = strMsg & "try again."
Case mnErrDeviceUnavailable
strMsg = "The drive you specified was not "
strMsg = strMsg & "found. Try again."
Case Else
Dim intErrNum As Integer
intErrNum = Err.Number
Err.Clear ' Clear the Err object.
Err.Raise Number:=intErrNum ' Regenerate the error.
End Select
Resume StartHere ' This jumps back to StartHere label so the user can try another file name.
End Function
比如上面语句中的:
Err.Clear ' Clear the Err object.
Err.Raise Number:=intErrNum ' Regenerate the error.
我不知 := 是什么意思,好象这个符号在delphi中是赋值的意思,可是vb中应该没有这个符号呀,这里出现又是什么意思呢?
25 个解决方案
#1
没见过,我想可能是笔误
#2
这个写错了吧,是不是从别的代码转换来
但漏了这句啊
但漏了这句啊
#3
这种方法可以直接对指定的可选的参数赋值,看一看下面的例子:
Private Sub Command1_Click()
Call test(b:=34)
Call test(34)
End Sub
Private Sub test(Optional ByVal a As Integer, Optional ByVal b As Integer)
Debug.Print a, b
End Sub
#4
看一下CSDN
#5
在操作EXCEL对象时,经常用到这样的赋值方法.
#6
对于带可选参数的函数调用,可以用顺序指定参数、也可以用命名指定参数。
3楼的调用例子不正确,(只指定 b 参数的)等价调用方式如下:
3楼的调用例子不正确,(只指定 b 参数的)等价调用方式如下:
Call test(, 34)
test(b:=34)
#7
少写一个 Call:
Call test(, 34)
Call test(b:=34)
#8
这种用法叫做"命名参数".
用处是,对于参数传入时的书写顺序可以*定义:
用处是,对于参数传入时的书写顺序可以*定义:
#9
同意#8楼,学习了
#10
":="用于函数或过程调用,用来指定命名参数。
比如,你问的这个句子
err是对象名,raise是它的方法,也就是,raise是一个过程。这个raise方法它有多个可选参数。它的语法是:
object.Raise number, source, description, helpfile, helpcontext
其中,除了number这个参数,其它参数都是可选的。
err.raise number:=71
表示用raise这个方法,把那个命名为number的参数的值设为71,其它参数忽略。
比如,你问的这个句子
Err.Raise Number:=71
err是对象名,raise是它的方法,也就是,raise是一个过程。这个raise方法它有多个可选参数。它的语法是:
object.Raise number, source, description, helpfile, helpcontext
其中,除了number这个参数,其它参数都是可选的。
err.raise number:=71
表示用raise这个方法,把那个命名为number的参数的值设为71,其它参数忽略。
#11
其实主要优点不是为了打乱参数次序,而可以明确指定参数。
比如一个函数有20个可选参数,如果只需要指定第 17 个参数,下面的两种等价写法哪种更适合人阅读很明显
比如一个函数有20个可选参数,如果只需要指定第 17 个参数,下面的两种等价写法哪种更适合人阅读很明显
Call f(, , , , , , , , , , , , , , , , 34)
Call f(v17:=34)
#12
MSDN--------
对许多内建函数、语句和方法,Visual Basic 提供了命名参数方法来快捷传递参数值。对命名参数,通过给命名参数赋值,就可按任意次序提供任意多参数。为此,键入命名参数,其后为冒号、等号和值 (MyArgument := "SomeValue") ,可以按任意次序安排这些赋值,它们之间用逗号分开。注意,下例中的参数顺序和所要参数的顺序相反:
Function ListText (strName As String, Optional strAddress As String)
List1.AddItem strName
List2.AddItem strAddress
End Sub
Private Sub Command1_Click ()
ListText strAddress:=”12345”, strName:="Your Name"
End Sub
如果过程有若干不必总要指定的可选参数,则上述内容更为有用。
对许多内建函数、语句和方法,Visual Basic 提供了命名参数方法来快捷传递参数值。对命名参数,通过给命名参数赋值,就可按任意次序提供任意多参数。为此,键入命名参数,其后为冒号、等号和值 (MyArgument := "SomeValue") ,可以按任意次序安排这些赋值,它们之间用逗号分开。注意,下例中的参数顺序和所要参数的顺序相反:
Function ListText (strName As String, Optional strAddress As String)
List1.AddItem strName
List2.AddItem strAddress
End Sub
Private Sub Command1_Click ()
ListText strAddress:=”12345”, strName:="Your Name"
End Sub
如果过程有若干不必总要指定的可选参数,则上述内容更为有用。
#13
路过,学习了
#14
对。另外一个好处是,用命名参数好像也能略略提高性能。
#15
学习了
#16
#17
UP
#18
可能调试信息会不一样,或者编译时的语法分析不一样。
执行同一个函数,参数都是通过压栈传递的,两种方式不会有区别。
#19
还有这种方法,学习了...
#20
Study!
#21
受教
#22
爬过.................再一次....
#23
不会,学习...
#24
看来不知不能乱发言啊,学习了
#25
爬过.................再再一次....
#1
没见过,我想可能是笔误
#2
这个写错了吧,是不是从别的代码转换来
但漏了这句啊
但漏了这句啊
#3
这种方法可以直接对指定的可选的参数赋值,看一看下面的例子:
Private Sub Command1_Click()
Call test(b:=34)
Call test(34)
End Sub
Private Sub test(Optional ByVal a As Integer, Optional ByVal b As Integer)
Debug.Print a, b
End Sub
#4
看一下CSDN
#5
在操作EXCEL对象时,经常用到这样的赋值方法.
#6
对于带可选参数的函数调用,可以用顺序指定参数、也可以用命名指定参数。
3楼的调用例子不正确,(只指定 b 参数的)等价调用方式如下:
3楼的调用例子不正确,(只指定 b 参数的)等价调用方式如下:
Call test(, 34)
test(b:=34)
#7
少写一个 Call:
Call test(, 34)
Call test(b:=34)
#8
这种用法叫做"命名参数".
用处是,对于参数传入时的书写顺序可以*定义:
用处是,对于参数传入时的书写顺序可以*定义:
#9
同意#8楼,学习了
#10
":="用于函数或过程调用,用来指定命名参数。
比如,你问的这个句子
err是对象名,raise是它的方法,也就是,raise是一个过程。这个raise方法它有多个可选参数。它的语法是:
object.Raise number, source, description, helpfile, helpcontext
其中,除了number这个参数,其它参数都是可选的。
err.raise number:=71
表示用raise这个方法,把那个命名为number的参数的值设为71,其它参数忽略。
比如,你问的这个句子
Err.Raise Number:=71
err是对象名,raise是它的方法,也就是,raise是一个过程。这个raise方法它有多个可选参数。它的语法是:
object.Raise number, source, description, helpfile, helpcontext
其中,除了number这个参数,其它参数都是可选的。
err.raise number:=71
表示用raise这个方法,把那个命名为number的参数的值设为71,其它参数忽略。
#11
其实主要优点不是为了打乱参数次序,而可以明确指定参数。
比如一个函数有20个可选参数,如果只需要指定第 17 个参数,下面的两种等价写法哪种更适合人阅读很明显
比如一个函数有20个可选参数,如果只需要指定第 17 个参数,下面的两种等价写法哪种更适合人阅读很明显
Call f(, , , , , , , , , , , , , , , , 34)
Call f(v17:=34)
#12
MSDN--------
对许多内建函数、语句和方法,Visual Basic 提供了命名参数方法来快捷传递参数值。对命名参数,通过给命名参数赋值,就可按任意次序提供任意多参数。为此,键入命名参数,其后为冒号、等号和值 (MyArgument := "SomeValue") ,可以按任意次序安排这些赋值,它们之间用逗号分开。注意,下例中的参数顺序和所要参数的顺序相反:
Function ListText (strName As String, Optional strAddress As String)
List1.AddItem strName
List2.AddItem strAddress
End Sub
Private Sub Command1_Click ()
ListText strAddress:=”12345”, strName:="Your Name"
End Sub
如果过程有若干不必总要指定的可选参数,则上述内容更为有用。
对许多内建函数、语句和方法,Visual Basic 提供了命名参数方法来快捷传递参数值。对命名参数,通过给命名参数赋值,就可按任意次序提供任意多参数。为此,键入命名参数,其后为冒号、等号和值 (MyArgument := "SomeValue") ,可以按任意次序安排这些赋值,它们之间用逗号分开。注意,下例中的参数顺序和所要参数的顺序相反:
Function ListText (strName As String, Optional strAddress As String)
List1.AddItem strName
List2.AddItem strAddress
End Sub
Private Sub Command1_Click ()
ListText strAddress:=”12345”, strName:="Your Name"
End Sub
如果过程有若干不必总要指定的可选参数,则上述内容更为有用。
#13
路过,学习了
#14
对。另外一个好处是,用命名参数好像也能略略提高性能。
#15
学习了
#16
#17
UP
#18
可能调试信息会不一样,或者编译时的语法分析不一样。
执行同一个函数,参数都是通过压栈传递的,两种方式不会有区别。
#19
还有这种方法,学习了...
#20
Study!
#21
受教
#22
爬过.................再一次....
#23
不会,学习...
#24
看来不知不能乱发言啊,学习了
#25
爬过.................再再一次....