我多年来一直使用VBA片段来压缩文件夹中的所有文件。今天我们在co worker计算机上尝试了这个,代码似乎经历了迭代,但没有任何文件输出。唯一的区别是新机器是32位,旧代码是64位。是否有任何理由32位文件无法与VBA一起使用?
Sub ZipIndividualFiles1()
Dim file As Variant
Const source = "C:\Users\co01\Desktop\TEST"
Const DEST = "C:\Users\co01\Desktop\Zipped"
Const PATH_TO_7Z = "C:\Program Files\7-Zip\7z.exe"
For Each file In CreateObject("Scripting.FileSystemObject").GetFolder(source).Files
Shell PATH_TO_7Z & " a -tzip """ & DEST & "\" & file.Name & ".zip"" """ & file.Path & """"
Next
End Sub
PATH_TO_7Z
路径有7个拉链。我们甚至尝试重新安装它。程序运行完成且没有错误。
您好我发现这个代码将完成这项工作,您需要将它放在您需要压缩的文件夹中,然后运行它,您可以通过VBA保存为批处理文件执行。
我最近学到了这个,所以我想说明可以做出的改变。
希望能帮助到你
@echo off
cd /d %~dp0
rem 7z.exe path
set sevenzip=
if "%sevenzip%"=="" if exist "%ProgramFiles(x86)%\7-zip\7z.exe" set sevenzip=%ProgramFiles(x86)%\7-zip\7z.exe
if "%sevenzip%"=="" if exist "%ProgramFiles%\7-zip\7z.exe" set sevenzip=%ProgramFiles%\7-zip\7z.exe
if "%sevenzip%"=="" echo 7-zip not found&pause&exit
for %%I in (.) do set CurrDirName=%%~nxI
set extension=.*
for %%a in (*%extension%) do "%sevenzip%" a "%CurrDirName%.zip" "%%a" -x!*.bat
pause
[/CODE]