2013-09-30 30 views
0

如何使用vba excel将两列不同的数据列组合到一列中,如ColumnA和ColumnC中的数据,并将其分隔为逗号。如果我有一个输入框来选择要组合的列以及组合结果将出现在哪一列,那将会很棒。将两个不同的列与分隔符结合使用

例如:

ColA ColC ColF 
Apple Orang Apple,Orang 
Pear Grape Pear,Grape 
+2

你不需要VBA,使用['CONCATENATE()' ](http://office.microsoft.com/en-gb/excel-help/concatenate-function-HP010062562.aspx)函数。 – Orbling

+2

或类似的东西:'= A1&“,”&C1' – pnuts

回答

1

如果你真的想要一个宏提示您输入不同列试试这个:

Sub Macro1() 
    Dim firstCol As String 
    firstCol = InputBox(Prompt:="Enter first column: ", Title:="Enter data", Default:="A") 

    Dim secondCol As String 
    secondCol = InputBox(Prompt:="Enter second column: ", Title:="Enter data", Default:="B") 

    Dim resultCol As String 
    resultCol = InputBox(Prompt:="Enter results column: ", Title:="Enter data", Default:="C") 

    LastRow = Cells(Rows.Count, firstCol).End(xlUp).Row 

    Dim comma As String 
    comma = ","",""," 

    For Each rng In Range(firstCol & "1:" & firstCol & LastRow) 
    Range(resultCol & rng.Row).Formula = "=CONCATENATE(" & firstCol & rng.Row & comma & secondCol & rng.Row & ")" 
    Next 
End Sub 
+0

一个过度的,但+1的努力:) – 2013-09-30 15:42:13

+0

我倾向于这样做:-) –

+0

嗨感谢所有的建议,但我想要的是结合所有的数据从2栏例如。 ColA和ColC转化为ColF,并使用ColA和ColC合并数据之间的逗号分隔符。至于输入框,以便我也可以结合其他列的日期,我想在宏上运行自动化。欣赏任何人都可以帮助我。谢谢 –

相关问题