Может кто-нибудь, пожалуйста, помогите. У меня есть некоторый код, который работает для импорта данных из одного файла в другой. Однако изменение, которое я ищу, заключается в том, чтобы вносить только определенные столбцы, например столбцы A, B и F, например. Может кто-нибудь, пожалуйста, помогите мне понять, как это сделать.
Я думаю, что это как-то связано с этим кодом, но я не уверен, как его реализовать.
Sheets("Data").Columns(1).Copy Destination:=Sheets("Data").Columns(2)
Основной код:
Sub ImportData()
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim Sheet As Worksheet
Dim PasteStart As Range
Set wb1 = ActiveWorkbook
Set PasteStart = [Data!A1]
FileToOpen = Application.GetOpenFilename _
(Title:="Please choose a Report to Parse", _
FileFilter:="Report Files *.csv (*.csv),")
If FileToOpen = False Then
MsgBox "No File Specified.", vbExclamation, "ERROR"
Exit Sub
Else
Set wb2 = Workbooks.Open(Filename:=FileToOpen)
For Each Sheet In wb2.Sheets
With Sheet.UsedRange
.Copy PasteStart
Set PasteStart = PasteStart.Offset(.Rows.Count)
End With
Next Sheet
End If
wb2.Close
End Sub
РЕДАКТИРОВАТЬ: Обновлено на основе ответа ниже:
Sub ImportData()
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim Sheet As Worksheet
Dim PasteStart As Range
Set wb1 = ActiveWorkbook
Set PasteStart = [Data!A1]
FileToOpen = Application.GetOpenFilename _
(Title:="Please choose a Report to Parse", _
FileFilter:="Report Files *.csv (*.csv),")
If FileToOpen = False Then
MsgBox "No File Specified.", vbExclamation, "ERROR"
Exit Sub
Else
Set wb2 = Workbooks.Open(Filename:=FileToOpen)
wb2.Worksheets("Sheet1").Range("A:A").Copy wb1.Worksheets("Sheet1").Range("A:A")
End If
wb2.Close
End Sub