【问题标题】:How to break long string to multiple lines如何将长字符串分成多行
【发布时间】:2013-05-13 12:53:33
【问题描述】:

我在我的 vba excel 代码中使用了这个插入语句,但我无法将它分成多行

SqlQueryString = "Insert into Employee values(" & txtEmployeeNo.Value & " _
,'" & txtContractStartDate.Value & "' _
,'" & txtSeatNo.Value & "' _
,'" & txtFloor.Value & "','" & txtLeaves.Value & "')"

它给出错误“预期语句结束”。请帮忙。

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    您不能在字符串中使用 VB 续行符。

    SqlQueryString = "Insert into Employee values(" & txtEmployeeNo.Value & _
    "','" & txtContractStartDate.Value &  _
    "','" & txtSeatNo.Value & _
    "','" & txtFloor.Value & "','" & txtLeaves.Value & "')"
    

    【讨论】:

      【解决方案2】:

      您可以简单地通过多个步骤创建字符串,这有点多余,但它可以在调试或编辑时保持代码的可读性并保持理智

      SqlQueryString = "Insert into Employee values(" 
      SqlQueryString = SqlQueryString & txtEmployeeNo.Value & " ,"
      SqlQueryString = SqlQueryString & " '" & txtEmployeeNo.Value & "',"
      SqlQueryString = SqlQueryString & " '" & txtContractStartDate.Value & "',"
      SqlQueryString = SqlQueryString & " '" & txtSeatNo.Value & "',"
      SqlQueryString = SqlQueryString & " '" & txtContractStartDate.Value & "',"
      SqlQueryString = SqlQueryString & " '" & txtSeatNo.Value & "',"
      SqlQueryString = SqlQueryString & " '" & txtFloor.Value & "',"
      SqlQueryString = SqlQueryString & " '" & txtLeaves.Value & "' )"
      

      【讨论】:

        【解决方案3】:

        如果多行的长字符串让您感到困惑。然后,您可以安装 mz-tools 插件,它是一个免费软件,并具有为您拆分线路的实用程序。

        Download Mz-tools

        如果你的字符串如下所示

        SqlQueryString = "Insert into Employee values(" & txtEmployeeNo.Value & "','" & txtContractStartDate.Value & "','" & txtSeatNo.Value & "','" & txtFloor.Value & "','" & txtLeaves.Value & "')"
        

        只需选择字符串 > 右键单击​​ VBA IDE > 选择 MZ-tools > 分割线

        【讨论】:

        • 似乎是一个简洁的工具。但是,它有 30 天的免费试用期,最便宜的版本是 63.96 美元。我确实很懒。但是,我没那么懒,它值 63.96 美元?
        • @tomatoeshift 完全同意你的观点?
        【解决方案4】:

        我知道这是超级老套,但万一有人来找这个,从 Visual Basic 14 开始,Vb 支持插值。太酷了!

        例子:

        SQLQueryString = $"
           Insert into Employee values( 
               {txtEmployeeNo}, 
               {txtContractsStartDate},
               {txtSeatNo},
               {txtFloor},
               {txtLeaves}
        )"
        

        它有效。 Documentation Here

        编辑:写完之后,我意识到 OP 说的是 VBA。 这在 VBA 中不起作用!!! 但是,我将把它留在这里,因为作为 VB 的新手,我偶然发现了这个问题,在 VB.net 中寻找解决这个问题的方法。如果这对其他人有帮助,那就太好了。

        【讨论】:

        • 不幸的是,VBA(“Visual Basic for Apps”)是它自己奇怪的小 VB 版本,它没有独立版本那么丰富。
        • @CharlesWood 无赖
        • 这不适用于 VBA,它是 OP 中的目标技术。 VB 和 VBA 充其量只是很少相关。从 VB 到 VBA 最难学习的事情之一是 VB 中的大量功能甚至不是 VBA 的计划。
        • @PaulBeverage - 查看我的编辑。我现在很遗憾地意识到 VB.net(很不错)和 VBA(很疯狂)之间的区别。
        • @gdo - 非常正确。即使有时不得不使用它(VBA),我仍然会随机地被一些奇怪的行为或缺失的功能所困扰。 :)
        猜你喜欢
        • 2020-06-23
        • 2011-09-01
        • 2019-03-14
        • 1970-01-01
        • 2013-05-26
        • 2010-12-13
        • 2017-07-05
        • 1970-01-01
        相关资源
        最近更新 更多