如何获取打开或保存文件地址和文件名,VBA编程

如何获取打开或保存文件地址和文件名,VBA编程No 1VBA 编程中有这样一种情景 就是当我们选择打开一个文件后 并不打算进行编辑 也就是说根本不想打开这个文件 而只是通过 打开文件 对话框来传递这个文件的地址和文件名 怎么办呢 VBA 给出了一个方法 可以方便地通过这

大家好,欢迎来到IT知识分享网。

No.1

VBA编程中有这样一种情景,就是当我们选择打开一个文件后,并不打算进行编辑,也就是说根本不想打开这个文件,而只是通过”打开文件”对话框来传递这个文件的地址和文件名。

怎么办呢?VBA给出了一个方法,可以方便地通过这个方法实现获取文件地址和名称。

如何获取打开或保存文件地址和文件名,VBA编程

如下图所示,GetOpenFilename方法可实现上述功能。

此文件是Application对象之下使用,使用方法:

Application.GetOpenFilename(FileFilter, FilterIndex, Title, ButtonText, MultiSelect)

参数说明可以参考下图:

如何获取打开或保存文件地址和文件名,VBA编程

如果,在打开对话框中没有单击确定按钮,也就是没有选择任何文件,单击了取消按钮的时候,GetOpenFilename方法返回False。

根据返回值,就可以对程序过程进行一个判断,是传递文件名还是进行其它操作。

下图为另一个方法,实现保存文件名返回。

如何获取打开或保存文件地址和文件名,VBA编程

语法:
Application.GetSaveAsFilename (InitialFilename, FileFilter, FilterIndex, Title, ButtonText)

获取用户文件名,而不保存任何文件。

感觉这两个方法都有些欺骗性,也不知道为什么这么做。

不管怎么着,只要理解在什么场景下可以使用达到目的就行了。

下图为例进行说明

如何获取打开或保存文件地址和文件名,VBA编程

三个按钮,一个打开文件,一个保存文件,一个清除记录。

每打开一个文件就记录一条,每保存一个文件就记录一条,其实都没有执行真正的操作。

清除记录可把记录的内容删除。

看下代码就明白了。

No.2

Private Sub CommandButton1_Click() Dim O As Variant'定义变量 O = Application.GetOpenFilename’返回值 If O <> False Then‘如果不是False就执行工作表记录过程 WriteValue O, Me.CommandButton1.Caption Else MsgBox "没有选择文件!" End If End Sub
如何获取打开或保存文件地址和文件名,VBA编程

Private Sub WriteValue(O As Variant, Cname As String) Dim cell As Range, ir As Integer Set cell = ActiveSheet.Range("B3") ir = ActiveSheet.Cells(ActiveSheet.Cells.Rows.Count, cell.Column).End(xlUp).Row + 1 With ActiveSheet.Cells(ir, cell.Column) .Value = "=row()-3" .Offset(0, 1).Value = O .Offset(0, 2).Value = Cname End With End Sub

以上代码实现对工作表进行记录,记录内容为打开或保存工作表的地址和文件名。

调用系统标准对话框有几种方法,前面文章里有过介绍,如Dialog对象,就是Microsoft Excel 中的所有内置对话框集合,有兴趣可以参考学习。

欢迎关注、收藏

—END—

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/172499.html

(0)
上一篇 2025-03-05 11:26
下一篇 2025-03-05 11:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信