你好友好的人。我会尽可能具体。问题如下:
为什么第一行在 VBE 即时窗口中有效,而第二行无效?我怎样才能使第二行工作?
err.Raise 999,,"EA"
err.Raise err.Number:= 999,err.Description:= "EA"
你好友好的人。我会尽可能具体。问题如下:
为什么第一行在 VBE 即时窗口中有效,而第二行无效?我怎样才能使第二行工作?
err.Raise 999,,"EA"
err.Raise err.Number:= 999,err.Description:= "EA"
不要err.X
在您的通话中提及,只需设置X:=...
:
err.Raise Number:=999, Description:= "EA"
err
是实际的错误对象,对于.Raise
您提供参数的方法。此错误与它在即时窗口中无关 - 它也不会在模块中工作,因为语法错误。
如果您按照预期的顺序提供所有参数 - 那么无需指定参数的标头信息:
.SaveAs(文件名、文件格式、密码、WriteResPassword、ReadOnlyRecommended、CreateBackup、AccessMode、ConflictResolution、AddToMru、TextCodepage、TextVisualLayout、Local)
你可以写:
wb.SaveAs "myFile.xlsx", xlOpenXMLWorkbook, "Password123", "Passsword123", True,,,,,,,,
但是,如果您想在两者之间跳过一些逗号并且不到处都有逗号(这样可以提高可读性),您可以执行以下操作:
wb.SaveAs FileName:="myFile.xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False, Local:=True
继续这个例子,您所做的是重新引用对象并尝试访问尚不存在的属性:
wb.SaveAs wb.FileName:="myFile.xlsx", wb.FileFormat:=xlOpenXMLWorkbook
如果您正在访问对象的属性,则您正在读取或写入该属性。
myVariable = wb.Name
(读)wb.Name = myVariable
(写)这两个操作都使用=
运算符。
您编写err.Number:=999
编译器的地方期望使用=
运算符进行读/写操作,这就是导致错误的原因。
希望这能更详细地解释它。