Копирование открытого CSV в другую существующую книгу - PullRequest
0 голосов
/ 29 февраля 2020

Найдите файл CSV, откройте этот файл CSV, скопируйте весь лист из этого файла, который не работает - вместо этого данные вставляются в новый файл

Я хочу создать код VBA, который позволит пользователь может выбрать файл .csv, открыть его, скопировать весь лист из этого файла (в нем всегда будет только один лист) и вставить весь этот лист в лист основной рабочей книги Excel под названием ' де c».

Обратите внимание, что я не получаю сообщение об ошибке при выполнении кода. Когда я запускаю его, я могу найти и выбрать файл .csv. Данные отображаются для копирования. Но он вставляет данные в новую рабочую книгу, а не в «эту рабочую книгу». И затем сам мой код вставляется в указанную мной вкладку (вкладка de c). Я, очевидно, делаю что-то глупое, но я не вижу этого сегодня.

Sub Get_Data_From_File()
Dim FileToOpen As Variant
Dim OpenBook As Workbook
Application.ScreenUpdating = False
FileToOpen = Application.GetOpenFilename(Title:="Browse for your Stripe download", FileFilter:="csv Files (*.csv*),*csv*")
If FileToOpen <> False Then
Set OpenBook = Application.Workbooks.Open(FileToOpen)
OpenBook.Sheets(1).Copy
ThisWorkbook.Worksheets("dec").PasteSpecial xlPasteValues
OpenBook.Close SaveChanges:=False

End If
Application.ScreenUpdating = True
End Sub

1 Ответ

0 голосов
/ 29 февраля 2020

Делай как это. Но данные не будут разделены.

Sub Get_Data_From_File()
    Dim FileToOpen As Variant
    Dim OpenBook As Workbook
    Dim vDB As Variant

    Application.ScreenUpdating = False
    FileToOpen = Application.GetOpenFilename(Title:="Browse for your Stripe download", FileFilter:="csv Files (*.csv*),*csv*")
    If FileToOpen <> False Then
        Set OpenBook = Application.Workbooks.Open(FileToOpen)
        vDB = OpenBook.Sheets(1).UsedRange
        'ThisWorkbook.Worksheets("dec").PasteSpecial xlPasteValues
        OpenBook.Close SaveChanges:=False
        ThisWorkbook.Worksheets("dec").Range("a1").Resize(UBound(vDB, 1), UBound(vDB, 2)) = vDB
    End If
    Application.ScreenUpdating = True
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...