2012-02-03 8 views
0

これは私が理解するためにはるかに進んでいます。VBA 2列のセルグループの条件付き連結

Row# ColA ColB         
23  7   Description 
24  8   Description 
25  
26     For cases with 
27     SpecialOptionDesc = Yes 
28  9   Description 
29  
30     For cases with 
31     SomeOptionDesc = Yes 
32    and 
33     AnotherOptionDesc = No 
34  9   Description 
35  
36  10   Description 

私は彼らが「と例については、」表示されたときに、その下のセルで、COLBの情報を統合する必要があります。 は、ここでワークシートのレイアウトの一例です。情報は、ColAの識別番号を持つ行で終わる必要があります。同様に、ColB Rows 30〜34はすべてColB行34にあります。古い行(26,27,30,32)はColB行28にあります。この場合、ColB Rows 26,27,28はすべてColB行28に「コピー」されます。 31,33)を削除することができます。これらの行のデータはもう必要ありません。

答えて

0

私は実際にこれをコンパイルしてエクセルを試していませんでしたが、すべてではないにしてもそこに90%の方法があると思います。私は少し離れてコンピュータから遠ざかっていますが、私が戻ってくるといくつかのテストをします。

Dim cellValue As String 
Dim i As Integer 
Dim j As Integer 
Dim strResult As String 

Const endRow As Integer = 500 

For i = 1 To endRow 
    If LCase(ActiveSheet.Cells(i, 2).Value) = "for cases with" Then 
     j = 0 
     strResult = "" 

     While ActiveSheet.Cells(i + j, 1).Value = "" And i + j < endRow 
      strResult = strResult + " " + ActiveSheet.Cells(i + j, 2).Value 

      ' delete stuff after using 
      ActiveSheet.Cells(i + j, 2).Value = "" 

      j = j + 1 
     Wend 

     ActiveSheet.Cells(i + j, 2) = strResult + " " + ActiveSheet.Cells(i + j, 2) 
    End If 
Next i 
+0

私にとっては効果がありません。 – warasen

+0

'ActiveSheet.Cells(i + j - 1,2)= strResult'行を編集して' - 1'を削除しました。それは今要求されたように働いているようです。 –

+0

それはまだ私のために働いていないと私はなぜ理解していない。私が助けるために提供できるものは他にありますか? – warasen