2017-05-26 28 views
1

私は選択したセルの値を連結して入力ボックスに入れます。Excelマクロの連結結果が正しくない結果を返す

入力ボックスに結果のかっこの前に最後のカンマを削除できません。

ヘルプのためのThanx!

Private Sub CommandButton2_Click() 
    Dim celCurrentCell As Range 
    Dim celFirstCell As Range 
    Dim i As Integer 
    Dim txtTempText As String 
    i = 0 
    txtTempText = "" 
    For Each celCurrentCell In Selection 
     If i = 0 Then 
      i = 1 
      Set celFirstCell = celCurrentCell 
     End If 
     txtTempText = txtTempText & celCurrentCell.Value & "','" 
    Next 
    txtTempText = Left(txtTempText, Len(txtTempText) - 1) 

    InputBox "Copier/coller le texte", "Concatenator", "('" + txtTempText + ")" 
End Sub 
+1

長さから1以上を引く: 'レン(txtTempText) - それは完璧に動作たくさんありがとう感謝 –

答えて

0
Private Sub CommandButton2_Click() 

    Dim celCurrentCell As Range 
    Dim celFirstCell As Range 
    Dim i As Integer 
    Dim txtTempText As String, sep as string 

    i = 0 
    txtTempText = "" 
    For Each celCurrentCell In Selection 
     If i = 0 Then 
      i = 1 
      Set celFirstCell = celCurrentCell 
     End If 
     txtTempText = txtTempText & sep & celCurrentCell.Value 
     sep = "','" 
    Next 

    InputBox "Copier/coller le texte", "Concatenator", "('" + txtTempText + "')" 


End Sub 
+0

が@jeeped - 完了 –

0

単一の列の1つの行または複数のセル内の複数のセルを選択していると仮定すると、これはループを除去します。その後

Option Explicit 

Private Sub CommandButton2_Click() 
    Dim strTemp As String, sep As String 

    sep = "','" 
    If Selection.Rows.Count > Selection.Columns.Count Then 
     strTemp = "('" & Join(Application.Transpose(Selection.Columns(1).Value2), sep) & "')" 
    Else 
     strTemp = "('" & Join(Application.Transpose(Application.Transpose(Selection.Rows(1).Value2)), sep) & "')" 
    End If 
    Debug.Print strTemp 

    InputBox "Copier/coller le texte", "Concatenator", strTemp 

End Sub 
+0

- 2' –

関連する問題