Как разбить длинную строку кода на несколько строк в VBA

У меня есть длинный код, который я хотел бы разбить на две строки. Я знаю, что мы обычно используем _ и переходим к следующей строке, но когда я разбиваю список во вложенной функции, я получаю сообщение об ошибке:

Ошибка компиляции: ожидается: разделитель списка или )

В противном случае код работает нормально.

Строка, которую я хочу разделить, является второй: If Not Intersect(Target, Range [...])

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("F6:F1000000, G6:G1000000, K6:K1000000, L6:L1000000, P6:P1000000, Q6:Q1000000, U6:U1000000, V6:V1000000, Z6:Z1000000, AA6:AA1000000, AE6:AE1000000, AF6:AF1000000")) Is Nothing Then
        Application.EnableEvents = False
        If ActiveCell.Value = ChrW(&H2713) Then
            ActiveCell.ClearContents
        Else
            ActiveCell.Value = ChrW(&H2713)
        End If
        Cancel = True
    End If
    Application.EnableEvents = True
End Sub

Спасибо.

Вы можете разделить строку на части с помощью "First part" & _ "Second part", с разрывом строки после символа подчеркивания.

Variatus 25.12.2020 01:30

@Varitus, ты должен сделать это принятым ответом

user14518362 25.12.2020 03:52
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
3
2
1 201
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вместо

Range("F6:F1000000, G6:G1000000, K6:K1000000, L6:L1000000, P6:P1000000, Q6:Q1000000, U6:U1000000, V6:V1000000, Z6:Z1000000, AA6:AA1000000, AE6:AE1000000, AF6:AF1000000")

вы также можете использовать

Range("F6:G1000000, K6:L1000000, P6:Q1000000, U6:V1000000, Z6:AA1000000, AE6:AF1000000")

Это как раз тот самый диапазон

Другой подход может быть

Dim s1 As String
Dim s2 As String

s1 = "F6:F1000000, G6:G1000000, K6:K1000000, L6:L1000000, P6:P1000000, Q6:Q1000000, "
s2 = "U6:U1000000, V6:V1000000, Z6:Z1000000, AA6:AA1000000, AE6:AE1000000, AF6:AF1000000"

а затем использовать

Range(s1 & s2)

И, конечно же, можно было бы использовать подход, упомянутый в комментариях.

Dim s As String

s = "F6:F1000000, G6:G1000000, K6:K1000000, L6:L1000000, P6:P1000000, Q6:Q1000000, " & _
    "U6:U1000000, V6:V1000000, Z6:Z1000000, AA6:AA1000000, AE6:AE1000000, AF6:AF1000000"

Другие вопросы по теме