Подтвердить что ты не робот

Лучший способ определить большую строку vba - т.е. Эквивалент heredoc?

Как определить большие строки в VBA? Есть ли лучший способ, чем кодирование чего-то вроде ниже?

Dim largeString as String
largeString = "This is a long block of text that I want to fill " & _
              "into a form field. I need to make sure I pay attention " & _
              "to spacing and carriage return issues while doing so. " & _
              "I also have to use quotes liberally, the concatenation " & _
              "operator, and the continuance underscore to make sure " & _
              "VBA can parse my code." & vbCr & vbCr & _
              "It kind of a pain in the ass and I wish I could use " & _
              "a heredoc instead, letting me copy and paste the block" & _
              "of text I need from another source and shove it into " & _
              "a string."

Изменить: Ugh, а также предел продолжительности строки 25 строк? Так много для хорошего отступов и 80 символов ширины, что только дает мне достаточно места для пары приличных абзацев.

4b9b3361

Ответ 1

Нет, это так же хорошо, как и получается.

Для действительно длинных строк это может быть возможность сохранить строку в отдельном файле или использовать некоторую функцию приложения. Например, в Word вам может потребоваться сохранить строку в переменной документа, как скрытый текст или Автотекст. В Excel вы можете рассмотреть скрытый лист для хранения длинных строковых констант.

Ответ 2

Я предпочитаю делать это следующим образом:

Dim lStr As String
lStr = ""

lStr = lStr & "This is a long block of text that I want to fill "
lStr = lStr & "into a form field. I need to make sure I pay attention "
lStr = lStr & "to spacing and carriage return issues while doing so. "
lStr = lStr & "I also have to use quotes liberally, the concatenation "
lStr = lStr & "operator, and the continuance underscore to make sure "
lStr = lStr & "VBA can parse my code." & vbCr & vbCr
lStr = lStr & "It kind of a pain in the ass and I wish I could use "
lStr = lStr & "a heredoc instead, letting me copy and paste the block"
lStr = lStr & "of text I need from another source and shove it into "
lStr = lStr & "a string."

Я думаю, что этот метод легче работать, чем метод продолжения линии, и нет предела номера строки, чтобы войти таким образом. Вы можете прокомментировать отдельные строки, что полезно для отладки строк SQL.

При обработке длинных строк мне легче использовать короткие имена переменных, потому что у VBA нет эквивалента оператора +=. largeString = largeString & "" занимает слишком много места и становится повторяющимся, поэтому сокращение имени строки делает формат несколько терпимым.

Для очень больших блоков текста напишите его в текстовом редакторе, затем скопируйте и вставьте в свою процедуру. Затем скопируйте

lStr = lStr & "

и вставьте его в начале каждой строки. Редактор VBA автоматически добавит кавычки в конец строки, что упростит процесс.