Я пытаюсь написать коды VBA, которые будут читать данное имя файла CSV и внести некоторые изменения в данные перед записью в другой файл CSV.Открытие и чтение файла CSV без имени листа
Set oSht_Input = Workbooks.Open(file_Path, UpdateLinks:=False).Worksheets(extractDataFile.convertedSheetName)
lastRow = oSht_Input.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
For Rows = 2 To lastRow
extractedDataFileRecord.Variable1 = CStr(oSht_Input.Cells(Rows, 1))
.... code continues
Этот код работает нормально.
Однако недостаток заключается в том, что файлы CSV просто копируют имя файла и помещают его в имя листа. Поэтому я могу с уверенностью предположить, что переменная convertSheetName эквивалентна предоставленному имени файла.
Этот код будет работать, если имя файла достаточно короткое для копирования в имя листа. Однако, если имя файла слишком длинное, имя файла обрезается внутри имени листа, поэтому я не могу получить правильную ссылку для установки объекта Worksheet.
Есть ли лучший способ получить ссылку на лист, чтобы я мог читать значения ячеек внутри листа?
Если вы используете 'Workbooks.Open', то процесс по существу является файлом ► Open, а не импортом в существующий или новый рабочий лист. Там будет только один рабочий лист, когда CSV будет открыт таким образом. Используйте ссылку «Листы» (1) «Лист листа» или кодовое имя листа «Sheet1» для ссылки на нее. – Jeeped
@ Поблагодарили! Извините, я немного новичок в VBA; поэтому я редактирую коды в Workbooks.Open(). Листы (1)? – lyk
CSV - это всего лишь текстовый файл. Вам не нужно импортировать его в Excel для работы с ним. Вы можете использовать макрос excel для прямого изменения текстового файла. –