【问题标题】:Ignore string if empty in concatenation formula如果连接公式中为空,则忽略字符串
【发布时间】:2016-02-26 10:10:30
【问题描述】:

我有一个公式可以连接不同列中的字​​符串。当每一列中都有数据时它工作得很好,但如果一列是空白的,我会收到一个错误“无效的过程调用或参数”,因为空列形成的字符串。如果字符串为空,我可以在代码中添加一个子句来忽略字符串吗?

Sub Concatenation_for_the_nation()

'Range("H2").End(xlDown).Select
Cells(rows.Count, "H").End(xlUp).Select
For i = 1 To ActiveCell.Row
    Range("H" & i).Select
    StrStrONE = StrStrONE & "" & Selection
Next i
Cells(1, 1).Select

'Range("I2").End(xlDown).Select
Cells(rows.Count, "I").End(xlUp).Select
For j = 1 To ActiveCell.Row
    Range("I" & j).Select
    StrStrTWO = StrStrTWO & "" & Selection
Next j
Cells(1, 1).Select

'Range("J2").End(xlDown).Select
Cells(rows.Count, "J").End(xlUp).Select
For k = 1 To ActiveCell.Row
    Range("J" & k).Select
    StrStrTHREE = StrStrTHREE & "" & Selection
Next k
Cells(1, 1).Select

'Range("K2").End(xlDown).Select
Cells(rows.Count, "K").End(xlUp).Select
For l = 1 To ActiveCell.Row
    Range("K" & l).Select
    StrStrFOUR = StrStrFOUR & "" & Selection
Next l
Cells(1, 1).Select

StrStrONE = Trim(StrStrONE)
StrStrTWO = Trim(StrStrTWO)
StrStrTHREE = Trim(StrStrTHREE)
StrStrTHREE = Left(StrStrTHREE, Len(StrStrTHREE) - 3)
StrStrFOUR = Trim(StrStrFOUR)
StrStrFOUR = Left(StrStrFOUR, Len(StrStrFOUR) - 3)

Cells(14, 7) = "(ISAV(" & StrStrONE & " " & StrStrTWO & " " & StrStrTHREE & ")=1 OR (" & StrStrFOUR & ")=1)=1"


Cells(14, 7).Select



End Sub

【问题讨论】:

    标签: vba excel concatenation


    【解决方案1】:

    您可以使用 ISBLANK() 函数检查列是否为空

    【讨论】:

      【解决方案2】:

      正如 user2471313 所说,使用了 ISBLANK() 函数,否则我会添加类似这样的内容来检查字符串:

      If StrStrONE<>"" and StrStrTWO<>"" and StrStrTHREE<>"" and StrStrFOUR<>"" then
          StrStrONE = Trim(StrStrONE)
      ''''your code until end
      End if
      

      【讨论】:

      • 这似乎是正确的想法,但我认为 all 字符串不必同时为非空,最好依次测试每个字符串和Trim 依次进行。
      • @ason​​gtoruin 只是为了分享,根据我的经验,有时修剪功能也不能真正起作用。在这种情况下,我需要找到具体的字符,然后将它们替换为“”。
      猜你喜欢
      • 2017-08-08
      • 2017-12-30
      • 2021-05-26
      • 2021-09-26
      • 1970-01-01
      • 1970-01-01
      • 2020-10-03
      • 1970-01-01
      • 2023-04-01
      相关资源
      最近更新 更多