2012-11-25 75 views
0

我需要處理每天以下列方式獲取的文件。在VBA中合併列

C1 C2   C3 
618 970000000000 32 
    970000000000 32 

58 970000000000 23 
    970000000000 23 
    970000000000 23 

15 970000000000 119 
    970000000000 119 
    970000000000 119 
    970000000000 119 

15 970000000000 17 
    970000000000 17 

我需要合併C3中的單元格基於C1的合併。請注意C1已經合併。 我希望它看起來像下面

C1 C2   C3 
618 970000000000 32 
    970000000000  

58 970000000000 23 
    970000000000  
    970000000000  

15 970000000000 119 
    970000000000  
    970000000000  
    970000000000  

15 970000000000 17 
    970000000000  

是否有可能寫VBA代碼?

+1

這類似於一組由出來放在SQL。你如何獲得輸入文件?你有什麼打算合併的意圖?你打算如何使用它? – bonCodigo

+0

看起來你不想減少行數;你想消除C3中的重複值。並且每個值塊由空行分隔。如果這是真的,那麼在VBA中看起來顯然是可能的。你去到Excel中的開發者菜單項(我指的是Excel 2010),點擊Visual Basic按鈕,然後在插入菜單項下選擇模塊。在代碼窗口中,輸入你的VBA函數。 – kermit

+0

@ BonCodigo ......我的目的是讓我的工作更輕鬆......當我進行分析時,這些價值觀讓人分心。 –

回答

0

假設你的數據在列A至C,您可以使用此代碼:

Sub MergeMyCells() 
firstRrow = 1 
Range("C1").Select 
lastRow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row 
Cells(lastRow, 3).Select 
For i = firstRow To lastRow 
    Cells(i, 3).Select 
    If (Not (ActiveCell.Offset(0, -2).Value > 0)) Then 
    ActiveCell.Value = "" 
    End If 
Next 
End Sub 
+0

您可以刪除for循環中的select語句並將'ActiveCell'引用替換爲'Cells(i,3)'以獲得更好的性能 – Pynner