У меня есть извлечение базы данных в xlsx. Я написал код, который проходит через лист и записывает отдельные ячейки/поля в текстовый файл с разделителями строк. Во-первых, была проблема, что код игнорировал все строки после строки, которая начиналась с «пустого» значения. Я исправил это, используя UseRange. Затем началась другая проблема - файл имеет «фиксированное» количество столбцов, но иногда последние 3 ячейки пусты или так. В этом случае он не работает - он игнорирует пустые ячейки в конце.Использование ячеек диапазона и UsedRange in для каждого цикла
Я считаю, что проблема находится на линии со вторым для каждого цикла (с myField); Я потратил примерно 5 часов на поиск в Google, используя справку, пробовал разные комбо с диапазоном, ячейками, End (xxx) и не мог решить проблему. Может ли кто-нибудь помочь?
В заключение код ДОЛЖЕН пройти через всю матрицу, но в первом и последнем столбцах могут быть пустые значения.
Вставьте часть кода, приведенную ниже.
For Each myRecord In myWkSheet.Range("A1:A" & myWkSheet.UsedRange.Rows.Count)
With myRecord
For Each myField In myWkSheet.Range(.Cells, myWkSheet.Cells(.Row, myWkSheet.Columns.Count).End(xlToLeft))
RplcText = myField.Text
RplcText = Replace(RplcText, "|", "/") 'Replaces pipes from input file to slashes to avoid mismatches during ETL
sOut = sOut & RplcText & DELIMITER
Next myField
OUTFILE_WRITELINE sOut
sOut = Empty
End With
Next myRecord`
Если * «файл имеет„фиксированное“количество столбцов» * почему не просто жесткий код число столбцов в, а не пытаться измерить '.UsedRange' или' .CurrentRegion'? – Jeeped
Я использую макрос для создания файлов .txt для различных типов экспорта. Я хотел сказать, что каждый отдельный файл имеет первую строку заголовков, которая всегда заполняется. Пример. Первая строка содержит 10 столбцов. Невозможно, чтобы любая строка имела 10+. Но может случиться так, что первая ячейка в первом столбце пустая и такая же, как в последних столбцах x. –