ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助]通过“打开文件”对话框获得文件完整路径问题(还有一点小问题,请版主再帮忙

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-2-6 11:53 | 显示全部楼层 |阅读模式
我想弹出一个“打开文件”的对话框(带筛选功能,比如只显示*.xls),选定一个文件并按确定后并不打开该文件,而是将该文件的完整路径赋值给一个字符串变量。请问如何做到呢?
[此贴子已经被作者于2006-2-7 13:47:21编辑过]

TA的精华主题

TA的得分主题

发表于 2006-2-6 12:07 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-2-6 13:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢版主,问题已解决。

TA的精华主题

TA的得分主题

发表于 2006-2-6 13:38 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
谢谢版主。真牛!

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-2-7 13:46 | 显示全部楼层

Public xn As String

Sub sd0206()
Set mydialog = Application.FileDialog(msoFileDialogFilePicker)
With mydialog
.Filters.Clear
.Filters.Add "所有EXCEL文件", "*.xls", 1
.AllowMultiSelect = False
If .Show = -1 Then
xn = .SelectedItems(1)
Application.Run macroname:="SD_EXCEL2WORD"
End If
End With

End Sub

现在还有一个小问题,我每次运行该程序时,弹出的“打开文件”对话框的位置总是从“C:\Documents and Settings\Bluewater”(Bluewater是我在windows下的用户名)开始,能不能把它的默认位置改为“F:\Document\盛大”,不然每次找文件都很麻烦。

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-2-7 14:51 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
再问个问题: 如果不是要取得文件的完整路径,而是取得文件夹的路径,那怎么实现呢?
[此贴子已经被作者于2006-2-7 16:13:36编辑过]

TA的精华主题

TA的得分主题

发表于 2006-2-7 17:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
以下是引用[I]duke008[/I]在2006-2-7 14:51:39的发言:[BR]再问个问题: 如果不是要取得文件的完整路径,而是取得文件夹的路径,那怎么实现呢?
Option Explicit Public xn As String Sub sd0206() Dim myDialog As FileDialog, xn As Variant Set myDialog = Application.FileDialog(msoFileDialogFilePicker) With myDialog .Filters.Clear .Filters.Add "所有EXCEL文件", "*.xls", 1 .AllowMultiSelect = False .InitialFileName = "F:\Document\盛大" If .Show = -1 Then MsgBox "当前文件夹路径为" & .InitialFileName xn = .SelectedItems(1) Application.Run macroname:="SD_EXCEL2WORD" End If End With End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-2-8 11:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

谢谢版主!

不过对于“取得文件夹的路径”的问题,我上次没表达清楚,非常抱歉,我的意思是这样的:

在“打开文件夹”对话框中,选中某文件夹,点击“确定”按钮,即可将该文件夹的路径赋值给一个字符串变量。

我在帮助文件中找到如下内容:

使用 FileDialog 对象

使用 FileDialog 属性返回一个 FileDialog 对象。FileDialog 属性位于每个单独 Office 应用程序的 Application 对象中。该属性使用一个参数 DialogType 确定该属性返回的 FileDialog 对象类型。FileDialog 对象有四种类型:

  • “打开”对话框:让用户选择一个或多个可以在主机应用程序中使用 Execute 方法打开的文件。
  • “另存为”对话框:让用户选择一个可以使用 Execute 方法保存当前文件的文件。
  • “文件选取器”对话框:让用户选择一个或多个文件。用户选择的文件路径将捕获到 FileDialogSelectedItems 集合。
  • “文件夹选取器”对话框:让用户选择一个路径。用户选择的文件路径将捕获到 FileDialogSelectedItems 集合。

我想可能是要用到“文件夹选取器”,可是帮助文件中没有给出相关示例,所以只好又麻烦版主了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-2-8 11:19 | 显示全部楼层
看来不用麻烦版主了,忽然想到了解决方法,原来只要把Application.FileDialog(msoFileDialogFilePicker)
改为Application.FileDialog(msoFileDialogFolderPicker)就行了。

TA的精华主题

TA的得分主题

发表于 2006-3-7 22:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
我怎么一运行就显示:编辑错误,用户定义类型未定义
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 07:40 , Processed in 0.035942 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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