Я новичок в VBA и должны написать код, который выполняет следующие действия:VBA: копировать строки из CSV в столбцы в новом листе
1- извлечения всех файлов CSV в папке
2- пут имена файлов в первой строке нового рабочего листа.
3- копировать все заголовки столбцов (первая строка) из CSV файлов
4- вставить их в одном столбце под каждым именем файла в новом рабочем листе.
Я знаю, что мне нужно использовать диапазон, но я смущен, как его использовать.
Это то, что я сделал для получения файлов csv. У меня есть проблемы с копированием строки в столбцы:
Dim CSVPath
Dim FS
Dim file
Dim wkb As Excel.Workbook
Dim ResultsSheet As Worksheet
Dim RowPtr As Range
Dim CSVUsed As Range
Set ResultsSheet = Sheet1
'Clear the results sheet
ResultsSheet.Cells.Delete
Set FS = CreateObject("Scripting.FileSystemObject")
'The CSV files are stored in a "CSV" subfolder of the folder where
'this workbook is stored.
CSVPath = ThisWorkbook.Path & "\CSV"
If Not FS.FolderExists(CSVPath) Then
MsgBox "CSV folder does not exist."
Exit Sub
End If
For Each file In FS.GetFolder(CSVPath).Files
If Right(file.Name, 3) = "csv" Then 'Only look at files with .csv extension
Set wkb = Application.Workbooks.Open(file.Path)
Next
, а также я знаю, что цикл должен быть что-то вроде этого:
FinalRow = Cells(Rows.Count, 1).End(xlUp).Row
For x = 2 To FinalRow
любая помощь ценится
Спасибо за ваш ответ. У меня есть вопрос, хотя. около arr1 = wb1.Worksheets («WHATEVER_ITS_NAME_IS»). Диапазон («A1: Z1»). Значение Число моих столбцов больше (A1: Z1), есть ли способ, которым мы можем установить его конец последней ячейки? – Navid
Да, конечно, попробуйте range.resize (rows, cols). MSDN - отличная ссылка для всех функций, объектов и методов Excel VBA. – johnzilla