Экспорт списков и сохранение их в виде файла .CSV - PullRequest
0 голосов
/ 11 марта 2019

Я нашел этот код, который невероятно помог мне с моей работой.Я хотел бы настроить это немного больше, хотя и для моей жизни я не могу заставить это работать.У меня вообще нет знаний в области кодирования, поэтому я подумал, что смогу получить помощь от этого сообщества.

Я хотел бы включить что-то, чтобы при сохранении файлов оно сохранялось в формате файла .CSV.Код, который я имею, показан ниже.

Sub Test()
  Dim wb As Workbook
  Dim ThisSheet As Worksheet
  Dim NumOfColumns As Integer
  Dim RangeToCopy As Range
  Dim RangeOfHeader As Range        'data (range) of header row
  Dim WorkbookCounter As Integer
  Dim RowsInFile                    'how many rows (incl. header) in new files?

  Application.ScreenUpdating = False

  'Initialize data
  Set ThisSheet = ThisWorkbook.ActiveSheet
  NumOfColumns = ThisSheet.UsedRange.Columns.Count
  WorkbookCounter = 1
  RowsInFile = 101                   'as your example, just 1000 rows per file

  'Copy the data of the first row (header)
  Set RangeOfHeader = ThisSheet.Range(ThisSheet.Cells(1, 1), ThisSheet.Cells(1, NumOfColumns))

  For p = 2 To ThisSheet.UsedRange.Rows.Count Step RowsInFile - 1
    Set wb = Workbooks.Add

  'Paste the header row in new file
    RangeOfHeader.Copy wb.Sheets(1).Range("A1")

  'Paste the chunk of rows for this file
    Set RangeToCopy = ThisSheet.Range(ThisSheet.Cells(p, 1), ThisSheet.Cells(p + RowsInFile - 2, NumOfColumns))
    RangeToCopy.Copy wb.Sheets(1).Range("A2")

  'Save the new workbook, and close it
    wb.SaveAs ThisWorkbook.Path & "\file " & WorkbookCounter
    wb.Close

  'Increment file counter
    WorkbookCounter = WorkbookCounter + 1
  Next p

  Application.ScreenUpdating = True
  Set wb = Nothing
End Sub

1 Ответ

0 голосов
/ 11 марта 2019

Хуан, если я понимаю, твоя единственная цель - сохранить как CSV.В этом случае все, что у вас есть, верно, за исключением пропущенного второго параметра в методе SaveAs ;который является FileFormat .

Пример:

Sub SaveAsCSV()

Dim wb As Workbook

Set wb = ThisWorkbook

Application.DisplayAlerts = False
wb.SaveAs ThisWorkbook.Path & "\" & "name1", xlCSV
Application.DisplayAlerts = True

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...