2017-01-23 98 views
0

我想将字符串组合成电子表格中的一行。我使用逗号作为我的分隔符。我怎么能这样,如果一个变量是空白不使用分隔符。这里是我的代码当变量为空时组合字符串不带分隔符

Concat = Join(Array(var1, var2, var3,` var4, var5), " ,") 
ws.Range("CU" & i).Value2 = Concat 

这里是返回结果的样本。

, , , , 
, ,Eligibility date , , 

我有VAR1,VAR2,VAR3 .....

我想知道我是如何摆脱逗号和空格,如果VAR1 =空白,VAR2 =空白等

+0

你可以为For/Each逻辑代替'Join'函数。此外,它是“分隔符”而不是“deliminator”:) –

+0

您期望的结果是什么? –

+0

谢谢。我希望它读取第二个条目的“资格日期” – Chris2015

回答

0

只有5个变量,你可以轻松地蛮力:

Sub test() 
Dim concat$, delimit$ 
Dim v1, v2, v3, v4, v5, val 
v1 = "" 
v2 = "adfadf" 
v3 = "Eligibility" 
v4 = "" 
v5 = "floerg" 

delimit = " ," 

For Each val in Array(v1,v2,v3,v4,v5) 
    If val <> "" Then 
     c = c & delimit & val 
    End If 
Next 
c = Right(c, Len(c) - Len(delimit)) 
Debug.Print c 

End Sub 
0

感谢您的答案!我修改了一下你的代码并得到了一个解决方案。 v1 - v5在回路中“回答”。

Dim v1 As String, v2 As String, v3 As String, v4 As String, v5 As String, delimit As String 
     Dim val As Variant 
     x = "" 
     v1 = "" 
     v2 = "" 
     v3 = "" 
     v4 = "" 
     v5 = "" 
     delimit = "," 

For Each val In Array(v1, v2, v3, v4, v5) 
     If val <> "" Then 
      x = x & delimit & val 
     End If 
    Next 

    If x <> "" Then 
     x = Right(x, Len(x) - Len(delimit)) 
     ws.Range("CU" & i).Value2 = x 
    End If 
相关问题