vbscript - 如何处理函数调用中的空参数?

标签 vbscript

当你调用像 x = myfunc(a,b,,d) 这样的函数时第三个参数会发生什么?它是空的吗?空值?没有?

我的功能有问题,比如说,

function myfunc(p1, p2, p3, p4)  
  if p3 <> "" then whatever  
end function

给我一个可怕的type mismatch
附言我正在尝试用 vbscript 函数替换 COM 对象,并且对那些没有问题的 COM 对象进行了那些空参数调用,但是 vbscript 不喜欢它们。我不能改变调用,只能改变函数,所以我需要以某种方式处理空参数,只是不知道如何(尝试 isnull 没有运气,也没有运气,isempty 没有运气,和 is nothing 给我一个 object required 错误)

最佳答案

遗漏参数的数据类型为ERROR。
我写了一个例子,请尝试以下操作:

Function IsMissing(p)
    IsMissing = (VarType(p) = vbError)
End Function

Function Myfunc(p1, p2, p3, p4)
    If IsMissing(p1) Then Response.Write "p1 is missing "
    If IsMissing(p2) Then Response.Write "p2 is missing "
    If IsMissing(p3) Then Response.Write "p3 is missing "
    If IsMissing(p4) Then Response.Write "p4 is missing "
End Function

str = myfunc(, , , 1)
'str = myfunc(1, 2, , ) 'causes error

通知:由于语法错误,function/sub 的最后一个参数不能为空。

关于vbscript - 如何处理函数调用中的空参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7354757/

相关文章:

excel - 用于将 Excel 工作簿打开到启用加载项的特定工作表的 Visual Basic 脚本

vbscript - 通过VBS删除行尾有空格的注册表项

windows - 在远程机器上安装软件?

sql-server - VBS第三方程序(如SQL)中的错误处理

javascript - 将代码从 vbscript 转换为 Jscript?

VBScript For Each 不起作用

VBScript/w AppActivate 用于应用程序的多个实例

vbscript - 根据组合框中的选择填充文本框

batch-file - 根据按下的按钮路由脚本的路径 mshta.exe vbscript :Execute

vbscript - 有没有办法退出或中断 VBScript 中的 switch 语句?