Макрос VBA для форматирования 1 ячейки в Excel, которая содержит строки текста и добавляет эти строки в отдельные строки - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть макрос, который преобразует координаты X и Y в широту и долготу, используя http://gridreferencefinder.com/batchConvert/batchConvert.php. Это работает нормально, хотя, когда я беру вывод с веб-сайта (загрузка текста в текстовой области) и вставляю его обратно в Excel вячейка A1, она просто вставляет все строки из текстовой области в 1 ячейку.

Так что мне было интересно, можно ли создать макрос, чтобы пройти по строкам текста в одной ячейке, а затем разбивать после каждого новогои поместите эту строку в свою строку, чтобы все строки текста помещались в отдельные строки.Я знаю, что могу добиться этого с помощью плагина Kutools для Excel и могу отформатировать текст для разбиения на строки так, как я этого хочу, хотя Kutools не поддерживает запись макросов и поэтому не может быть автоматизирован.Вот как это выглядит после вставки с использованием макроса:

This is how it looks once pasted using my Macro, а затем вот как я хотел бы отформатировать его:

This is how it needs to be formatted.

1 Ответ

0 голосов
/ 21 февраля 2019
  • Формула

Формула, подобная приведенной ниже, в ячейке B1 и перетаскивание вниз:

=TRIM(MID(SUBSTITUTE(A1,Char(10),REPT(" ",99)),Row()*99-98,99))

  • VBA

Простой способ получить тот же эффект через VBA:

Sub Test()

For X = 1 To Len(Cells(1, 1).Value) - Len(Application.WorksheetFunction.Substitute(Cells(1, 1).Value, Chr(10), vbNullString)) + 1
    Cells(X, 2).Value = Evaluate("TRIM(MID(SUBSTITUTE(A1,Char(10),REPT("" "",99))," & X & "*99-98,99))")
Next X

End Sub

Я уверен, что вы загружаете переменную вместо Cells(1, 1).value вы можете достичь того, что вы хотите.

...