【问题标题】:How to Break a Long Line of Code Into Multiple Lines in VBA如何在 VBA 中将一长行代码分成多行
【发布时间】:2020-12-25 18:57:50
【问题描述】:

我有很长的代码想分成两行。我知道我们通常使用_ 并转到下一行,但是当我在嵌套函数中分解一个列表时,我得到了错误:

编译错误:预期:列表分隔符或)

否则代码可以正常工作。

我要拆分的行是第二行: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" 将字符串拆分为多个部分,换行符跟在下划线之后。
  • @Varitus 你应该把它作为接受的答案

标签: excel vba


【解决方案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)

当然,也可以使用 cmets 中提到的方法

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"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-13
    • 1970-01-01
    • 2013-10-19
    • 1970-01-01
    • 2023-03-03
    相关资源
    最近更新 更多