2012-02-03 3 views
0

이것은 내가 알아 내기에 훨씬 앞선 것입니다.VBA 두 열에있는 셀 그룹의 조건부 연결

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 행 26, 27, 28은 모두 ColB 행 28에 "복사"됩니다. 마찬가지로 ColB 행 30은 34이지만 모두 ColB 행 34에 있습니다. 이전 행 (26, 27, 30, 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