如何判断GetOpenFilename的返回值

fqyugu 2004-11-26 01:23:34
Dim filenames As Variant
Dim fn As Variant
Dim filename As String


filenames = Application.GetOpenFilename("Excel(*.xls),*.xls", 0, "Open a file", Null, True)
For Each fn In filenames
filename = CStr(fn)
...
Next

如果在出现对话框的时候点取消就会出错,怎么解决阿,先谢谢了
...全文
1108 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fqyugu 2004-11-26
  • 打赏
  • 举报
回复
有没有什么函数能判断变量的类型阿,比如这里判断filenames的类型
fqyugu 2004-11-26
  • 打赏
  • 举报
回复
不好意思,写错了,点取消时,filnames = "False",

filenames = Application.GetOpenFilename("Excel(*.xls),*.xls", 0, "Open a file", Null, True)
'判断在这里判断一下filename
if trim(filename) & ""<>"" then //选中文件时,trim(filenames) 类型不匹配
For Each fn In filenames
filename = CStr(fn)
...
Next
end if
tztz520 2004-11-26
  • 打赏
  • 举报
回复
filenames = Application.GetOpenFilename("Excel(*.xls),*.xls", 0, "Open a file", Null, True)
'判断在这里判断一下filename
if trim(filename) & ""<>"" then
For Each fn In filenames
filename = CStr(fn)
...
Next
end if
fqyugu 2004-11-26
  • 打赏
  • 举报
回复
如果选了文件运行正常,如果没有选任何文件点的是取消,这时候filename = "False",接下来就出错了
lxcc 2004-11-26
  • 打赏
  • 举报
回复
Dim filenames As Variant
Dim fn As Variant
Dim filename As String


filenames = Application.GetOpenFilename("Excel(*.xls),*.xls", 0, "Open a file", Null, True)
For Each fn In filenames
filename = CStr(fn)
MsgBox filename
Next


在Excel正常啊?
fqyugu 2004-11-26
  • 打赏
  • 举报
回复
For Each fn In filenames ///在这就报错了,Type mismatch
if str(fn) & ""<>"" then
filename = Str(fn)
end if
...
Next
tztz520 2004-11-26
  • 打赏
  • 举报
回复
For Each fn In filenames
if str(fn) & ""<>"" then
filename = Str(fn)
end if
...
Next

2,506

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧