Пакетное преобразование XLS в XLSX в Excel и изменение параметров PPI

Я пытаюсь преобразовать много старых .xls файлы .формат xlsx и изменение настроек ppi одновременно. Возможно ли это с помощью какого-то скрипта или макроса? Изменение ppi в книге, полной изображений, с 220ppi на 96ppi уменьшает размер.

нашел на этой странице, но мне интересно, если он по-прежнему действует для Office 2013/2016 компонентов и как обновить его с возможными изменениями ppi.

ниже дает мне сообщение об ошибке компиляции "Пользовательский тип не определен", где говорится Dim FSO As Scripting.FileSystemObject

Option Explicit

' Convert all xls files in selected folder to xlsx

Sub convertXLStoXLSX()

Dim FSO As Scripting.FileSystemObject
Dim strConversionPath As String
Dim fFile As File
Dim fFolder As Folder
Dim wkbConvert As Workbook


' Open dialog and select folder
With Application.FileDialog(msoFileDialogFolderPicker)
    .AllowMultiSelect = False
    .Show
    strConversionPath = .SelectedItems(1)
End With

Set FSO = New Scripting.FileSystemObject

' Check if the folder exists
If FSO.FolderExists(strConversionPath) Then
    Set fFolder = FSO.GetFolder(strConversionPath)

    ' Loop through files, find the .xls files
    For Each fFile In fFolder.Files
        If Right(fFile.Name, 4) = ".xls" Or Right(fFile.Name, 4) = ".XLS" Then
            Application.DisplayAlerts = False
            Set wkbConvert = Workbooks.Open(fFile.Path)
            ' Save as XML workbook - if file contains macros change FileFormat:=52
            wkbConvert.SaveAs FSO.BuildPath(fFile.ParentFolder, Left(fFile.Name, Len(fFile.Name) - 4)) & ".xlsx", FileFormat:=51
            wkbConvert.Close SaveChanges:=False
            ' Delete original file
            fFile.Delete Force:=True
            Application.DisplayAlerts = True
        End If
    Next fFile

End If

End Sub
25
задан MicLima
11.12.2022 18:12 Количество просмотров материала 3375
Распечатать страницу

1 ответ

изменить код

wkbConvert.SaveAs FSO.BuildPath(fFile.ParentFolder, Left(fFile.Name, Len(fFile.Name) - 4)) & ".xlsx", FileFormat:=51

By

wkbConvert.SaveAs Replace(ThisWorkbook.FullName, ".xls", ".xlsx"), FileFormat:=xlExcel12
0
отвечен Edu Garcia 2022-12-13 02:00

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх