Могу ли я экспортировать только диапазон в пределах листа, используя VBA? - PullRequest
0 голосов
/ 05 апреля 2019

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

Я пробовал разные сценарии кодирования, но безрезультатно.

Sub saveSheetToCSV()

    Dim myCSVFileName As String
    Dim tempWB As Workbook

    myCSVFileName = ThisWorkbook.Path & "\" & "EXPORT_" & VBA.Format(VBA.Now, "ddMMyyyy") & ".csv"

    ThisWorkbook.Sheets("Data").Activate

    ActiveSheet.Copy
    Set tempWB = ActiveWorkbook

    With tempWB
    .SaveAs FileName:=myCSVFileName, FileFormat:=xlCSV, CreateBackup:=False
    .Close
    End With
End Sub

Может ли кто-нибудь подтвердить, какой код я бы использовал для простого экспорта диапазона на листе? Я пытаюсь экспортировать только диапазон A2: D24 на листе под названием «Данные», а не весь лист, как это делает текущий код выше. Спасибо.

1 Ответ

0 голосов
/ 05 апреля 2019

Копировать диапазон на новый лист в новой книге. Сохранить как. Закрыть.

    Dim myCSVFileName As String
    Dim tempWB As Workbook

    myCSVFileName = ThisWorkbook.Path & "\" & "EXPORT_" & VBA.Format(VBA.Now, "ddMMyyyy") & ".csv"
    'Create new Workbook.
    Set tempWB = Workbooks.Add
    'Copy Range
    ThisWrokbook.Sheets("SheetNameWithRange").Range("A1:Z40").Copy    
    With tempWB
        'Paste Range
        .Worksheets(1).Range("A1").Paste 'Or Paste as Values to not retain Links/Formulas
        'Save and Close
        .SaveAs FileName:=myCSVFileName, FileFormat:=xlCSV, CreateBackup:=False
        .Close
    End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...