Excel VBA:解压缩后无法覆盖文件
我从一个随机论坛上找到了一个非常简单的解压码,并对其进行了编辑以满足我的需要Excel VBA:解压缩后无法覆盖文件,vba,excel,unzip,overwrite,Vba,Excel,Unzip,Overwrite,我从一个随机论坛上找到了一个非常简单的解压码,并对其进行了编辑以满足我的需要 Sub ProcessFile() Dim SourcePath As String, Filename As String SourcePath = "R:\DataStore\002_BhavCopy\Zipped\" Filename = Dir(SourcePath) Do While Len(Filename) > 0 If Right(Filena
Sub ProcessFile()
Dim SourcePath As String, Filename As String
SourcePath = "R:\DataStore\002_BhavCopy\Zipped\"
Filename = Dir(SourcePath)
Do While Len(Filename) > 0
If Right(Filename, 3) = "zip" Then
Call UnZipFile(SourcePath, Filename)
Kill SourcePath & Filename
End If
Filename = Dir()
Loop
End Sub
Sub UnZipFile(strTargetPath As String, Fname As String)
Dim oApp As Object
Dim FileNameFolder As Variant
If Right(strTargetPath, 1) <> Application.PathSeparator Then
strTargetPath = strTargetPath & Application.PathSeparator
End If
FileNameFolder = strTargetPath
dPath = "R:\DataStore\002_BhavCopy\UnZipped\"
Set oApp = CreateObject("Shell.Application")
On Error Resume Next
oApp.Namespace(dPath).CopyHere oApp.Namespace(FileNameFolder & Fname).Items
On Error GoTo 0
End Sub
子进程文件()
Dim SourcePath为字符串,文件名为字符串
SourcePath=“R:\DataStore\002\u BhavCopy\Zipped\”
Filename=Dir(源路径)
当Len(文件名)>0时执行
如果正确(文件名,3)=“zip”,则
调用UnZipFile(源路径,文件名)
终止源路径和文件名
如果结束
Filename=Dir()
环
端接头
子UnZipFile(strTargetPath作为字符串,Fname作为字符串)
作为对象的Dim oApp
Dim FileNameFolder作为变量
如果正确(strTargetPath,1)Application.PathSeparator,则
strTargetPath=strTargetPath&Application.PathSeparator
如果结束
FileNameFolder=strTargetPath
dPath=“R:\DataStore\002\u BhavCopy\unzip\”
设置oApp=CreateObject(“Shell.Application”)
出错时继续下一步
oApp.Namespace(dPath).CopyHere oApp.Namespace(FileNameFolder&Fname).Items
错误转到0
端接头
解压文件后,文件将被放置在dPath
文件夹中
这里的问题是,如果dPath
文件夹中已经存在同名文件,则windows 7会显示一个带有覆盖/取消等的弹出窗口。。。如何禁用此弹出窗口并覆盖已存在的文件?
我也尝试过按照语法中的指定应用voptions 16,但这也不起作用。。。
任何帮助都将不胜感激……如果您无法使用这些选项,则可以首先在zip存档上使用
Dir()
,以确定是否存在任何冲突,并在解压缩之前从文件夹中删除冲突的文件。参见(例如)示例2:蒂姆!!!我发布了一个答案:D@Aditya:是的,不幸的是,这对我也不起作用。我做了很多研究,但没有找到一个明确的答案,所以我求助于一种变通方法。i、 e如果文件存在,请删除它,然后复制该文件。谢谢@Siddharth我按照Tim说的方式想出了一个解决方案:)下面是我的项目(仍在建设中)的链接,供前来寻找解决方案的人使用:我目前正陷于一种情况,您认为使用Microsoft.XMLHTTP对象可能吗?