Я новичок в VBA и внес необходимые изменения в сценарий, который нашел в Интернете. Я хочу получить значения диапазона G2:H40000
из файла Excel, в котором каждая ячейка строки отделена вкладкой, а затем сохранена в текстовом файле UTF-8.
Я проверил скрипт для диапазона G2:H12
, и он работает. Но когда в нем содержится более 40 000 строк (например, G2:H40000
) с каждой ячейкой в столбце H, содержащей много текста, сценарий занимает столько времени, чтобы завершить sh, что мне пришлось остановить процесс более чем через час.
Как сделать так, чтобы скрипт ниже работал быстрее и эффективнее?
Sub ExportToTxt()
Dim data As Range, row As Range, cell As Range
Dim output As String
Set data = Range("G2:H40000")
For Each row In data.Rows
For Each cell In row.Cells(1, 1) '1st param 1 excludes the table header
output = output & cell.Value & vbTab & cell.Offset(0, 1).Value ' Offset 2nd param gets the adjacent cell to its right
Next cell
output = output & vbNewLine
Next row
' Write to a UTF-8 encoded text file:
Filename = "C:\Users\lenovo\Desktop\output.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
Set out = fso.CreateTextFile(Filename, True, True) 'Syntax: object.CreateTextFile(filename[,overwrite[,unicode]])
out.WriteLine (output)
out.Close
End Sub