2012-04-20 70 views
0

我有很多3種語言的原始數據,其中大部分是在.xlsx。 您可以考慮數據,因爲表格包含3列和許多行(百萬)。如何在Excel 2010中創建條件單元格合併?

我想建立其實現這個宏:

檢查,如果你的相鄰單元的單元是空的,合併到自己的上述細胞。

if (the cell on your left is empty): 
    merge yourself to the above cell; 

我對VB沒有什麼瞭解,但是我想自己實現它,我該怎麼做呢?

回答

1

沒有更多的信息很難回答,但是這概括了一些問題。

你需要一個地方來存儲感興趣的單元格的行和列:

Dim ColCrnt As Long 
Dim RowCrnt As Long 

如果你想往下跑一欄,你可以寫這樣的:

ColCrnt = 5  ' 5 represents column "E". Columns are numbered from 1. 

For RowCrnt = 1 to 1000 
    'Update code. 
Next 

如果您想要移動光標然後調用宏,您可以編寫如下內容:

ColCrnt = ActiveCell.Column 
RowCrnt = ActiveCell.Row 
' Update Code. 

假設更新代碼是活動工作表上操作,這將是這樣的:

If Cells(RowCrnt, ColCrnt - 1).Value = "" Then 
    Cells(RowCrnt-1, ColCrnt).Value = _ 
      Cells(RowCrnt-1, ColCrnt).Value & Cells(RowCrnt-1, ColCrnt).Value  
    Cells(RowCrnt, ColCrnt).Value = "" 
End If 

Cells(RowCrnt, ColCrnt).Value是當前單元的值。從RowCrnt中減1,引用上面的單元格。從ColCrnt減1,引用左邊的單元格。

Cells(RowCrnt-1, ColCrnt).Value = Cells(RowCrnt-1, ColCrnt).Value & Cells(RowCrnt-1, ColCrnt).Value將當前單元格的值連接到上面單元格的末尾。

Cells(RowCrnt, ColCrnt).Value = ""清除當前單元格。

所以:

 | E | 
     |---------| 
     | The  | 
     | cat  | 

變爲:

 | E | 
     |---------| 
     | Thecat | 
     |   | 

如果你想之間 「的」 和 「貓」 的空間:

Cells(RowCrnt-1, ColCrnt).Value = _ 
     Cells(RowCrnt-1, ColCrnt).Value & " " & Cells(RowCrnt-1, ColCrnt).Value  

如果你想 「貓」 上一條新線::

Cells(RowCrnt-1, ColCrnt).Value = _ 
     Cells(RowCrnt-1, ColCrnt).Value & vblf & Cells(RowCrnt-1, ColCrnt).Value  

注意:單元格可能需要非常長的字符串,但只有開頭纔可見。

希望這能讓你開始。

相關問題