【分享成果,随喜正能量】当你接触的人越多,层面越高,你会发现:越高端、越有教养的人大都相互支持,抱团发展,因为你好了大家都好。越低端、越缺德行的人,越是喜欢诋毁嫉妒,拆台,鄙视,因为我不好,我也不想让你好。所以,和一群有同样格局和思维的人一起前行才是最重要的。。

《VBA代码解决方案》这套教程是我最早推出的教程,目前已经是第二版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一下把自己喜欢的代码摆好。

这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过度教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是第44讲:VBA删除指定的文件

vba 删除指定的区域(VBA删除指定的文件)(1)

第四十四讲 利用VBA代码,如何删除指定的文件

大家好,我们今日继续讲解VBA代码解决方案,今日讲解的是第44讲内容:如何删除指定文件。在实际的文件操作中,如果我们需要删除某个文件,往往是选择某个文件,右键点击删除,或者是直接放到回收站中。那么在VBA中如何做到删除文件呢?这时我们往往会用到GetOpenFilename方法显示标准的内置“打开”对话框,选择某个文件,然后再执行相关的操作。

1 GetOpenFilename方法讲解

关于GetOpenFilename方法,我们看下面的语法讲解:

语法如下:

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

参数

a) expression是必需的,返回一个Application对象。

b) FileFilter是可选的,指定文件筛选条件的字符串。如果省略,则默认参数值为“所有文件(*.*)”。

c) FilterIndex是可选的,指定默认文件筛选条件的索引号,取值范围为 1 到由 FileFilter 所指定的筛选条件数目。如果省略,或者取值大于可用筛选数目,则采用第一个文件筛选条件。

d) Title是可选的,指定对话框的标题。如果省略,则使用“打开”作为标题。

e) ButtonText是可选的,仅用于Macintosh(苹果)。

f) MultiSelect是可选的,如果该值为True,则允许选定多个文件名,如果该值为False,则只允许选定单个文件名。默认值为False。

2 利用GetOpenFilename方法和KILL命令完成删除某文件

如果要删除某文件需要利用到KILL命名,下面我们看一段代码,利用GetOpenFilename方法和KILL命令来完成删除某文件的过程:

Sub mynz_44() '44 利用VBA代码,如何删除指定的文件

Dim Filename As Variant

Dim mymsg As Integer

Dim i As Integer

Filename = Application.GetOpenFilename(Title:="删除文件", MultiSelect:=True)

If IsArray(Filename) Then

mymsg = MsgBox("是否删除你所选文件?", vbYesNo, "提示")

If mymsg = vbYes Then

For i = 1 To UBound(Filename)

Kill Filename(i)

Next

End If

End If

End Sub

代码窗口:

vba 删除指定的区域(VBA删除指定的文件)(2)

代码解析:mynz_44()过程使用GetOpenFilename方法显示标准的内置“打开”对话框,获取用户选定文件的文件名后使用Kill语句删除。

a) 第5行代码显示标准的“打开”对话框,将对话框的标题设置为“删除文件”,将MultiSelect参数设置为True,允许选定多个文件。

b) 第6行代码,获得返回值。当用户选定文件后,返回的是选定的文件名或用户输入的文件名。因为MultiSelect参数已设置为True,所以返回值将是一个包含所有选定文件名的数组(即使仅选定了一个文件名)。如果用户取消了对话框,则该值为False。

c) 第8行到第12行代码,经询问用户后使用Kill语句从磁盘中删除用户选定的文件。

运行mynz_44过程,显示标准的内置“打开”对话框,删除用户选定的文件.

下面实测上述代码,运行后弹出删除文件对话框:

vba 删除指定的区域(VBA删除指定的文件)(3)

选择文件后,选择打开:

vba 删除指定的区域(VBA删除指定的文件)(4)

选择“是”之后,文件将被删除。

今日内容回向:

1 GetOpenFilename方法的意义是什么?

2 如何完成删除文件的过程?

3 上面的内容中有三个特别提示,是否理解呢?

本讲内容参考程序文件:VBA代码解决方案修订(1-48).xlsm

vba 删除指定的区域(VBA删除指定的文件)(5)

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

vba 删除指定的区域(VBA删除指定的文件)(6)

vba 删除指定的区域(VBA删除指定的文件)(7)

vba 删除指定的区域(VBA删除指定的文件)(8)

【分享成果,随喜正能量】有时候觉得遇到麻烦,其实是跟自己过不去,该发生的已经发生,该面对的始终要面对,该承担的始终要承担。​​。

,