You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LibreCalc的StarBasic宏中引号内续行符"_"无效该如何转义

StarBasic的续行符 _是语法级的行接续标识,不能放在双引号包裹的字符串字面量内部,不存在对引号内续行符的转义方法——放在引号内的 _会被直接识别为字符串内容的一部分,不会触发代码换行逻辑。

正确实现长字符串代码换行的方法

将长字符串拆分为多个独立的短字符串段,每段单独用双引号包裹,段之间用字符串拼接符&连接,再在&后加续行符 _即可,修改后的常量定义如下:

Const SCells = "B17:C28,E17:G28,L17:O28,T17:V28,AA17:AE28,AN17:AR28," & _
"BB17:BD28,BO17:BS28,BY17:CB28,CG17:CI28,CS17:CW28,DB17:DF28,DL17:DN28," & _
"DU17:DX28,EF17:EK28,ET17:EV28,FA17:FD28,FJ17:FL28,FV17:FZ28,GD17:GF28," & _
"GM17:GO28"

如果是定义普通变量而非常量,也可以用逐行追加的写法,无需使用续行符,可读性更高:

Dim SCells As String
SCells = "B17:C28,E17:G28,L17:O28,T17:V28,AA17:AE28,AN17:AR28,"
SCells = SCells & "BB17:BD28,BO17:BS28,BY17:CB28,CG17:CI28,CS17:CW28,DB17:DF28,DL17:DN28,"
SCells = SCells & "DU17:DX28,EF17:EK28,ET17:EV28,FA17:FD28,FJ17:FL28,FV17:FZ28,GD17:GF28,"
SCells = SCells & "GM17:GO28"

修改后完整可运行代码

Const SCells = "B17:C28,E17:G28,L17:O28,T17:V28,AA17:AE28,AN17:AR28," & _
"BB17:BD28,BO17:BS28,BY17:CB28,CG17:CI28,CS17:CW28,DB17:DF28,DL17:DN28," & _
"DU17:DX28,EF17:EK28,ET17:EV28,FA17:FD28,FJ17:FL28,FV17:FZ28,GD17:GF28," & _
"GM17:GO28"
splitCells = Split(SCells,",")

Sub Cells_range
    Dim i As Integer
    For i = 0 To 2 Step 1
        Print splitCells(i)
    Next i
End Sub

运行后会正常输出前3个单元格区域的值。

内容的提问来源于stack exchange,提问作者Estatistics

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 17:09:03