2017-01-23 4 views
0

スプレッドシート上で文字列を1行にまとめることを試みています。私はデリミタとしてコンマを使用しています。区切り文字を使用しない変数が空白の場合はどうすればよいでしょうか。ここに私が持っているコードは変数が空白のときに区切り文字なしで文字列を結合

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

そしてここに返される結果のサンプルです。

, , , , 
, ,Eligibility date , , 

I持ってVAR1、VAR2、VAR3 .....

私はカンマや空白を取り除く方法を疑問に思っなど=空白VAR1 =空白、var2の

+0

「Join」機能の代わりに/ Eachロジックを使用できます。また、デリミタではなくデリミタです:) –

+0

希望の結果は何ですか? –

+0

ありがとうございます。 2番目のエントリ – 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 
関連する問題