2016-09-22 104 views
2

我想將2列合併爲1.一個接一個。將2列合併爲1(一個接一個)

我有這樣的:

 A B 
Row 1: 1 10 
Row 2: 2 11 
Row 3: 3 12 
Row 4: 4 13 

並希望獲得這樣的:

 A 
Row 1: 1 
Row 2: 2 
Row 3: 3 
Row 4: 4 
Row 5: 10 
Row 6: 11 
Row 7: 12 
Row 8: 13 

每次(行數在甲在2列的行的數目不同,B是一樣)。

我嘗試了很多功能,我很接近但仍然不在那裏。 希望得到任何幫助。我更喜歡公式。我仍然是VBA的新手,但任何幫助都可以。

謝謝!

+0

你能告訴我們你試過嗎?有幾種不同的方式可以解決這個問題,但是爲你編寫代碼並不是這個網站的目的。我們很樂意爲您提供幫助和編寫代碼。你卡在哪裏? – Tyeler

+1

這篇文章(幾乎)只是一天前發佈的問題的完全重複[Excel VBA:找到兩個表的聯合](http://stackoverflow.com/questions/39617785/excel-vba-find-the-工會的兩桌)。唯一的區別就是你想要一個'Union All'而不是'Union'。因此,您可以使用發佈的解決方案,只刪除'.Range(「C1」,.Range(「C1」)。End(xlDown))。RemoveDuplicates Array(1)'(消除可能的重複)行。而已。 – Ralph

+0

@Ralph這兩篇文章確實有相似之處,但他確實表示他更喜歡使用'Formulas',這令人驚訝的是我找不到重複的。我真的認爲這個問題已經被問到,但我找不到任何東西... – Tyeler

回答

2

這是一個公式,它會做到這一點。

把它放在C1並複製下來。

=IF(A1<>"",A1,INDEX(B:B,ROW()-COUNTA(A:A))) 

enter image description here

+1

..........好的! ............. –

+0

太棒了!我認爲它有效。我會稍後檢查它,並讓你知道! –

+0

@KubaGuzik如果它適合你,請通過點擊答覆中的複選標記告訴我標記爲正確。 –

-1

試試這個。

Range("B1").Select 
Range(Selection, Selection.End(xlDown)).Select 
Selection.Copy 
Selection.End(xlToLeft).Select 
Selection.End(xlDown).Offset(1, 0).Select 
ActiveSheet.Paste 
Range("A1").Select 
+2

你可能想檢查[如何避免使用.select](http://stackoverflow.com/questions/10714251/how-to在-Excel的VBA的宏 - 避免使用 - - 選擇 - )。我們不知道正在使用什麼類型的工作簿,有多少張工作簿,他想從哪裏調用子工具,等等。使用'.Select'最好儘可能避免。 – Tyeler

+0

我剛剛回答了他的問題。他需要更具體地瞭解他有多少張牀單。關於使用。選擇,是的,我同意最好避免。但是我只記錄了一個宏,因爲他的問題很簡單,不是更具體。 – sn152

+0

你必須記住,在OP完成之後,許多人都會閱讀堆棧溢出問題的答案。如果您覺得他向我們提供了一個很差的問題,那麼[該網站的指導](http://stackoverflow.com/help/how-to-answer)告訴我們,最好不要回答。對低質量問題提供低質量答案不會對任何人有所幫助,並且可能會降低成本。 – Tyeler