将每个Excel文件分别压缩到一个文件夹中。

我目前卡住试图单独压缩文件夹中的每个文件。 我不想压缩文件夹或将所有文件压缩在一起。 他们需要单独压缩,以便稍后遍历XML文件夹并提取将要OCR的图像。 我的尝试是使用VBA,只是改变文件扩展名

Sub Create_Zip() Dim FSO As FileSystemObject Dim objFile As File Dim myFolder Dim strFilename As String Const zipDir As String = "\\...\Zip Test" Set FSO = New FileSystemObject Set myFolder = FSO.GetFolder(zipDir) For Each objFile In myFolder.Files strFilename = objFile.Name new_strFilename = Replace(strFilename, ".xlsx", ".zip") Next objFile End Sub 

根据“立即窗口”stringvariables“ new_strFilename ”具有文件扩展名“ .zip”,但我没有看到文件夹中的更改。

您将新文件名分配给variablesnew_strFilename而不是实际的文件。

由于您尝试objFile.Name = new_strFilename时出现错误我假设该属性是只读的。

一般来说,如果你想重命名一个文件使用名称function:

 Name oldFile As newFile 

oldFile和newFile是包含文件的完整path的string。

在你的例子中是这样的:

  For Each objFile In myFolder.Files strFilename = objFile.Name new_strFilename = Replace(strFilename, ".xlsx", ".zip") Name zipDir & "\" & strFilename As zipDir & "\" & new_strFilename Next objFile 

尝试使用名字A作为B.

 Sub Create_Zip() Dim FSO As FileSystemObject Dim objFile As File Dim myFolder Dim strFilename As String Const zipDir As String = "\\...\Zip Test" Set FSO = New FileSystemObject Set myFolder = FSO.GetFolder(zipDir) For Each objFile In myFolder.Files strFilename = objFile.name new_strFilename = Replace(strFilename, ".xlsx", ".zip") Name zipDir & "\" & strFilename As zipDir & "\" & new_strFilename Next objFile End Sub