if TypeName(文件名) = "Boolean" thenExit SubEnd If那个文件名是用Application.GetOpenFilename方法输入的文件名。上面那个判断怎么理解,高手解剖下。为什么打开后选取了文件就BOOLEAN就是TRUE,如果没打开的话就执行Exit Sub呢?????如果点击取消是FALSE的话,为什么还达到条件而退出了呢?而选择了文件程序才会跳过去继续执行你这解释不通
2 回答
阿晨1998
TA贡献2037条经验 获得超6个赞
duvetwong描述的很清楚,是你没理清逻辑
TypeName返回的是数据类型的名称
If判断的是【TypeName() = "Boolean"】这整个一个表达式的结果,当然它也是Boolean,但与引号内的Boolean不同啊,更与它是True或False无关
GetOpenFilename返回值是String或String数组,取消时则返回False,TypeName取得它的类型时就会返回Boolean(String),与等号后面的"Boolean"相符,所以【TypeName() = "Boolean"】为True,所以If代码段中的代码将被执行,在本例中也就是Exit Sub,只有当用户选择了文件并点确定时,才会执行End If后面的代码段
HUX布斯
TA贡献1876条经验 获得超6个赞
TypeName是判断参数的数据类型,这个意思是判断“文件名”这个变量的数据类型,如果数据类型是Boolean,那么就exit sub
Application.GetOpenFilename在点击“确定”时会返回选中的文件名数组,点击“取消”时会返回一个Boolean型的False,所以判断是否是Boolean型的值就可以判断出点的是确定还是取消
添加回答
举报
0/150
提交
取消