excel如何快速打开vba(抓紧收藏Excel中用VBA操作文件)

我发现一个奇怪的现象,VBA这个东西一旦学上,就似乎丢不下了,工作中遇到的什么问题,都会条件反射地想:这个问题,用VBA是否可以解决?

excel如何快速打开vba(抓紧收藏Excel中用VBA操作文件)(1)

对于初学的人,有些问题并不能迅速地写出解决的代码,而希望找一些现成的代码参考参考。本着方便自己,也方便别人的目的,本文收集了一些我认为会经常会接解到的文件操作对应的代码,希望能帮到学习VBA的朋友们。​

判断指定目录下的指定文件是否存在

以判断D盘根目录下是否存在"Excel VBA其实很简单.xlsm"为例,想知道这个文件是否存在,最简单的办法就是用Dir函数尝试获取该文件名,再通过其返回结果判断文件是否存在。代码可以写为:

Sub 判断文件是否存在() Dim myFileName As String '指定带完整目录的文件夹名称 myFileName = "D:\Excel VBA其实很简单.xlsm" If Len(Dir(myFileName, vbDirectory)) > 0 Then MsgBox "该文件存在" Else MsgBox "该文件不存在" End If End Sub

当然,对于同一个问题,解决的思路不同,代码也不一定相同。比如,要判断文件是否存在,还可以用下面的代码:

Sub 判断文件是否存在() Dim myFile As String Dim fso As Scripting.FileSystemObject myFile = "D:\Excel VBA其实很简单.xlsm" '指定带完整路径的文件名 Set fso = New Scripting.FileSystemObject If fso.FileExists(myFile) = True Then MsgBox "文件 " & myFile & " 存在" Else MsgBox "文件 " & myFile & " 不存在" End If Set fso = Nothing End Sub

复制指定文件到新目录中

复制文件同样也可以有多种思路和方法选择,比如:

Sub 复制文件() Dim mySource As String, myDes As String On Error GoTo ErrorHandler mySource = ThisWorkbook.Path & "\VBA其实很简单.xlsm" myDes = ThisWorkbook.Path & "\目标目录\VBA其实很简单.xlsm" FileCopy mySource, myDes MsgBox "复制成功!" Exit Sub ErrorHandler: If Err.Number <> 0 Then MsgBox "无法复制该文件!" & vbCrLf & Err.Description End If End Sub

Sub 复制文件() Dim myFile As String Dim myNewFilePath As String Dim fso As Scripting.FileSystemObject myFile = ThisWorkbook.Path & "\VBA其实很简单.xlsm" '要复制的文件 myNewFilePath = ThisWorkbook.Path & "\目标目录\" '要复制到的目标位置 Set fso = New Scripting.FileSystemObject fso.CopyFile myFile, myNewFilePath, overwritefiles:=True MsgBox "已经将文件 " & myFile & " 复制到文件夹 " & myNewFilePath Set fso = Nothing End Sub

移动指定文件到某个目录中

Sub 移动文件() Dim OldName As String Dim NewName As String OldName = ThisWorkbook.Path & "\VBA其实很简单.xlsm" '原文件名 NewName = ThisWorkbook.Path & "\目标目录\VBA其实很简单.xlsm" '新文件名 Name OldName As NewName '不更改文件名,但将其移动到另外一个文件夹 MsgBox "文件已经被移动了" End Sub

Sub 移动文件() Dim myFile As String Dim myNewFilePath As String Dim fso As Scripting.FileSystemObject myFile = ThisWorkbook.Path & "\VBA其实很简单.xlsm" '要移动的文件 myNewFilePath = ThisWorkbook.Path & "\目标目录\" '要移动的位置 Set fso = New Scripting.FileSystemObject If fso.FileExists(myFile) Then fso.MoveFile myFile, myNewFilePath MsgBox "已经将文件 " & myFile & " 移到了文件夹 " & myNewFilePath Else MsgBox "要移动的文件不存在" End If Set fso = Nothing End Sub

更改指定文件的名称

Sub 重命名文件() Dim OldName As String, NewName As String OldName = ThisWorkbook.Path & "\VBA基实很简单.xlsm" '原文件名 NewName = ThisWorkbook.Path & "\VBA其实很容易.xlsm" '新文件名 Name OldName As NewName End Sub

删除指定目录中的指定文件

Sub 删除文件() Dim myFile As String myFile = ThisWorkbook.Path & "\VBA基实很简单.xlsm" On Error Resume Next Kill myFile On Error GoTo 0 End Sub

Sub 删除文件() Dim myFile As String Dim myNewFilePath As String Dim fso As Scripting.FileSystemObject myFile = ThisWorkbook.Path & "\VBA基实很简单.xlsm" '要删除的文件 Set fso = New Scripting.FileSystemObject If fso.FileExists(myFile) Then fso.DeleteFile myFile MsgBox "已经将文件 " & myFile & " 删除" Else MsgBox "要删除的文件不存在" End If Set fso = Nothing End Sub

当然,对文件的操作还有很多,如果本文中没有列出你想要的代码,可以将你需要的代码留在评论区,后续再补充。

关注“Excel笔记”,学习更多Excel技巧。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页