将每个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