ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: gvntw

Application.GetOpenFilename 方法解析

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2018-4-13 10:48 | 显示全部楼层
本帖已被收录到知识树中,索引项:Application对象
感谢如此细致的讲解,直达我心

TA的精华主题

TA的得分主题

发表于 2019-5-18 21:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
我遇到一个这样的问题  如果fileToOpen定义为string的话  会在if fileToOpen = false处报错,如果要判断有没有选择文件 必须把fileToOpen定义为变体变量 ,请问各位老师这是什么原因?

TA的精华主题

TA的得分主题

发表于 2019-7-21 14:01 | 显示全部楼层
本帖最后由 EH-yb 于 2019-7-22 23:17 编辑
淡淡的邪 发表于 2019-5-18 21:40
我遇到一个这样的问题  如果fileToOpen定义为string的话  会在if fileToOpen = false处报错,如果要判断有 ...

1 如果用户取消了对话框,if fileToOpen = false是不会报错的。
2 如果用户选择了文件,if fileToOpen = false,是会报错的。如果选择了文件,那么fileToOpen是一个带路径的文件名,而false是布尔逻辑,不是同一个类型,两者怎么能用“=”相比较呢。
3 if fileToOpen = false不能解决用户(选择文件)或者(选择取消对话框)而出现的程序错误。也就是说如果if fileToOpen = falseif fileToOpen <> false 同时出现在过程里,不管用户是否选择文件都比然出错。
4 解决方法:如果没有选择文件,则是取消了对话框,此时fileToOpen是一个布尔值。判断fileToOpen值的类型是不是布尔型,用VarType函数返回值确认,If VarType(fileToOpen) =11 Then Msgbox “你没有选择文件” :Exit Sub(如果是布尔值则返回11)。
以下是MultiSeelect参数的说明
I)将MultiSeelect True,则返回值将是一个包含所有选定文件名的数组 。如果用户取消了对话框,则该值为一个变量值,值为False。若果用户选择了文件,那么fileToOpen的返回是一个数组,而数组的类型为变体Variant。定义的类型应与之相匹配。
II)如果MultiSelect False(默认为False),则返回值是一个变量值(注意不是数组),该值为包含路径的文件名。如果用户取消了对话框,则fileToOpen的值为False

TA的精华主题

TA的得分主题

发表于 2019-7-21 17:01 | 显示全部楼层
EH-yb 发表于 2019-7-21 14:01
(1)  如果用户取消了对话框,if fileToOpen = false是不会报错的。(2) 如果用户选择了文件,if fileT ...

谢谢回复 !!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-19 14:26 , Processed in 0.038873 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表