2012-04-20 10 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は、現在のセルの値である:更新コードを仮定すると、3210は、アクティブなワークシート上で動作させることである、それは何かのようになります。 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  

注:セルは非常に長い文字列を取ることができますが、先頭だけが表示されます。

希望すると、これが始まります。

関連する問題