Страницы: 1
RSS
Как сохранить несколько книг c .xlsx на .xlsb (двоичный лист)
 
Добрый вечер. На днях столкнулся с проблемой касательно сохранением несколько excel книг в формате .xlsb так как объем SSD очень маленький, приходится сохранить все имеющийся книги excel форматом .xlsx на .xlsb Так вот, как можно одновременно открыть все файлы и сохранить их в формате .xlsb за один раз.  
 
Цитата
shukhratsharipov04 написал:
как можно одновременно открыть все файлы и сохранить их в формате .xlsb за один раз.  
За один раз никак не получится, но процесс можно автоматизировать с помощью макроса.
 
Код
Sub Макрос1()
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    Dim wb As Workbook
    For Each wb In Workbooks
        Select Case LCase(fso.GetExtensionname(wb.Name))
        Case "xlsx"
            Dim s As String
            s = wb.Path & "\" & fso.getbasename(wb.Name) & ".xlsb"
            Debug.Print s
            wb.SaveAs Filename:=s, FileFormat:=xlExcel12, CreateBackup:=False
        End Select
    Next
End Sub
 
Код
Sub Макрос2()
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    Dim oFD As FileDialog
    Dim x, lf As Long
    'назначаем переменной ссылку на экземпляр диалога
    Set oFD = Application.FileDialog(msoFileDialogFilePicker)
    With oFD 'используем короткое обращение к объекту
    'так же можно без oFD
    'With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = True
        .Title = "Выбрать файлы отчетов" 'заголовок окна диалога
        .Filters.Clear 'очищаем установленные ранее типы файлов
        .Filters.Add "Excel files", "*.xlsx", 1 'устанавливаем возможность выбора только файлов Excel
        .FilterIndex = 2 'устанавливаем тип файлов по умолчанию - Text files(Текстовые файлы)
        .InitialFileName = "С:\Temp\Книга1.xlsx" 'назначаем папку отображения и имя файла по умолчанию
        .InitialView = msoFileDialogViewDetails 'вид диалогового окна(доступно 9 вариантов)
        If oFD.Show = 0 Then Exit Sub 'показывает диалог
        'цикл по коллекции выбранных в диалоге файлов
        Dim wb As Workbook
        Dim s As String
        For lf = 1 To .SelectedItems.Count
            x = .SelectedItems(lf) 'считываем полный путь к файлу
            Set wb = Workbooks.Open(x) 'открытие книги
            s = wb.Path & "\" & fso.getbasename(wb.Name) & ".xlsb"
            On Error Resume Next
                wb.SaveAs Filename:=s, FileFormat:=xlExcel12, CreateBackup:=False
                If Err <> 0 Then
                    MsgBox Err.Description, vbInformation
                End If
            On Error GoTo 0
            wb.Close False
            'Kill x
        Next
    End With
End Sub
Спасибо ресурсу https://www.excel-vba.ru за часть кода.
Изменено: МатросНаЗебре - 25.02.2020 17:18:04
 
И еще один готовый вариант(с возможностью выбора формата и удалением прежних файлов: Как сменить формат сразу для нескольких файлов Excel
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Доброе утро. Прошу прощения, я просто новичок в этом деле, не могли бы вы описать последовательность работ, заранее спасибо !
И какой из этих макросов актуальный?
 
shukhratsharipov04,  Я с трудом представляю, что объем и количество постоянно нужных файлов таков, что не хватает объема диска, даже не сильно большого, при этом, незначительная экономия при  сохранении в XLSB, - выход из положения. В любом случае  это не решение проблемы, а оттягивание или замены носителя, или его чистки или … У вас 32 или 64ГБ? 128 вполне хватает, 250 хватает с головой. 512 - это когда рисковые хрянят там еще и все фотки.
По вопросам из тем форума, личку не читаю.
 
Цитата
shukhratsharipov04 написал:
И какой из этих макросов актуальны ?
все, выбирайте, какой больше нравится.
Если не умеете использовать макросы - то хоть поиском по Яндексу воспользуйтесь, чтобы узнать что это. По моей ссылке к статье приложен файл с уже внедренным кодом - там только макросы разрешить и кнопку нажать останется.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Всем спасибо !

Цитата
БМВ написал:
У вас 32 или 64ГБ?
У меня 256 ГБ, но у меня очень очень много файлов который превышают размер 250-340 мб. Кол-во строк бьет отметку 1 млн и кол-во столбцов более 25-30 ))))))
Изменено: shukhratsharipov04 - 26.02.2020 10:44:10
Страницы: 1
Наверх