MyTetra Share
Делитесь знаниями!
Сохранение двумерного массива в файл
Время создания: 16.03.2019 23:43
Текстовые метки: array,vba
Раздел: Разные закладки - VBA - Array
Запись: xintrea/mytetra_db_adgaver_new/master/base/1514719024q8l9lbqs5v/text.html на raw.githubusercontent.com

Сохранение двумерного массива в файл

  • Макросы VBA Excel
  • Обработка массивов
  • Создание файлов
  • Книги Excel
  • Массивы

Функция предназначена для сохранения двумерного массива в файл формата XLS

Sub SaveArray(ByVal Arr, ByVal ColumnNames, ByVal DocName$)
    ' Получает двумерный массив Arr с данными, и массив заголовков столбцов ColumnNames.
    ' Создаёт новый файл в подпапке СФОРМИРОВАННЫЕ ДОКУМЕНТЫ с именем DocName$
    On Error Resume Next
 
    ' создаём подпапку (там же, где текущий файл Excel)
    folder$ = ThisWorkbook.Path & "\СФОРМИРОВАННЫЕ ДОКУМЕНТЫ\": MkDir folder$
 
    Application.ScreenUpdating = False
    Dim sh As Worksheet, wb As Workbook
    Set wb = Application.Workbooks.Add(xlWBATWorksheet)        ' создаём новый файл Excel
    Set sh = wb.Worksheets(1): sh.Name = DocName$
 
    ColumnsNamesCount = UBound(ColumnNames) - LBound(ColumnNames) + 1
 
    With sh.Range("a1").Resize(, ColumnsNamesCount)        ' выводим заголовки столбцов
        .Value = ColumnNames
        .Interior.ColorIndex = 15: .Font.Bold = True
        With sh.Range("a2").Resize(UBound(Arr, 1), UBound(Arr, 2))        ' и данные
            .Value = Arr
            .Borders.LineStyle = xlContinuous
        End With
        .EntireColumn.AutoFit
    End With
 
    ' сохраняем и закрываем созданный файл Excel
    Filename$ = folder$ & DocName$ & " " & Format(Now, "dd-mm-yyyy hh-nn-ss") & ".xls"
    wb.SaveAs Filename$, xlWorkbookNormal        ' формат XLS
    wb.Close False
 
    ' показываем созданный файл в папке
    CreateObject("WScript.Shell").Run "explorer.exe /e,/select,""" & Filename$ & """"
 
    Application.ScreenUpdating = True
End Sub

Пример использования:

Sub test_SaveArray()
    Arr = Range("a2:f20").Value
    Headers = Array("Штрихкод", "Наименование", "Кол-во", "Артикул", "Цена", "Поставщик")
 
    SaveArray Arr, Headers, "Склад" ' создаём из массива Arr файл Excel с именем СКЛАД
End Sub
  • 3010 просмотров
Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования