2017-08-18 14 views

答えて

3

使用TEXTJOIN()

=TEXTJOIN(char(10),TRUE,A1:A6) 

テキストが参加Office 365のエクセルで導入されました。あなたはそれが、ブックに添付モジュールにこのコードを入れて、上記のような式を使用していない場合:

Function TEXTJOIN(delim As String, skipblank As Boolean, arr) 
    Dim d As Long 
    Dim c As Long 
    Dim arr2() 
    Dim t As Long, y As Long 
    t = -1 
    y = -1 
    If TypeName(arr) = "Range" Then 
     arr2 = arr.Value 
    Else 
     arr2 = arr 
    End If 
    On Error Resume Next 
    t = UBound(arr2, 2) 
    y = UBound(arr2, 1) 
    On Error GoTo 0 

    If t >= 0 And y >= 0 Then 
     For c = LBound(arr2, 1) To UBound(arr2, 1) 
      For d = LBound(arr2, 1) To UBound(arr2, 2) 
       If arr2(c, d) <> "" Or Not skipblank Then 
        TEXTJOIN = TEXTJOIN & arr2(c, d) & delim 
       End If 
      Next d 
     Next c 
    Else 
     For c = LBound(arr2) To UBound(arr2) 
      If arr2(c) <> "" Or Not skipblank Then 
       TEXTJOIN = TEXTJOIN & arr2(c) & delim 
      End If 
     Next c 
    End If 
    TEXTJOIN = Left(TEXTJOIN, Len(TEXTJOIN) - Len(delim)) 
End Function 
+0

は、それが魅力を働いたありがとうございました:) –

0

それとも

Function TEXTJOIN(arr, Optional sDelim As String = ", ", Optional blSkipBlank As Boolean = True) 
Dim lPos As Long, sResult As String 

arr = Application.Transpose(arr) 

sResult = Join(arr, sDelim) 

If blSkipBlank = True Then 
    sResult = Replace(sResult, sDelim & sDelim, sDelim) 

    Do 
     sResult = Replace(sResult, sDelim & sDelim, sDelim) 
     lPos = InStr(1, sResult, sDelim & sDelim, vbTextCompare) 
     If lPos = 0 Then Exit Do 
    Loop 
End If 

If Right(sResult, Len(sDelim)) = sDelim Then 
    TEXTJOIN = Left(sResult, Len(sResult) - Len(sDelim)) 
Else 
    TEXTJOIN = sResult 
End If 

End Function 

= TEXTJOIN(A1:A16)

それとも

= TEXTJOIN(A1:A16、CHAR(10))

関連する問題