时间:2023-02-03 13:44:28来源:本站整理作者:点击:
我发现一个奇怪的现象,VBA这个东西一旦学上,就似乎丢不下了,工作中遇到的什么问题,都会条件反射地想:这个问题,用VBA是否可以解决?
对于初学的人,有些问题并不能迅速地写出解决的代码,而希望找一些现成的代码参考参考。本着方便自己,也方便别人的目的,本文收集了一些我认为会经常会接解到的文件操作对应的代码,希望能帮到学习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技巧。
,“关公”陆树铭因病去世,网爆大衣哥亲往西安悼念,被赞有情有义“关公”陆树铭因病去世,网爆大衣哥亲往西安悼念,被赞有情有义
关注公益慈善可以在哪里查询全国慈善组织的公开信息 蚂蚁庄园1月12日答案《卿卿日常》24节气姑娘结局是什么_《卿卿日常》24节气姑娘离开老三了吗在大寒时节古人会做什么 蚂蚁庄园1月20日答案pc上的switch模拟器教程(推荐一款Switch电脑上的模拟器)Copyright 2022-2026 feiyundao.com 〖妃孕岛〗 版权所有 备案号 :陕ICP备2022000637号-3
声明: 本站文章均来自互联网,不代表本站观点 如有异议 请与本站联系 本站为非赢利性网站 不接受任何赞助和广告