У меня есть длинный код, который я хотел бы разбить на две строки. Я знаю, что мы обычно используем _
и переходим к следующей строке, но когда я разбиваю список во вложенной функции, я получаю сообщение об ошибке:
Ошибка компиляции: ожидается: разделитель списка или )
В противном случае код работает нормально.
Строка, которую я хочу разделить, является второй: 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
Спасибо.
@Varitus, ты должен сделать это принятым ответом
Вместо
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"
Вы можете разделить строку на части с помощью
"First part" & _ "Second part"
, с разрывом строки после символа подчеркивания.