2012-04-20 7 views
0

3 개 언어로 된 많은 원시 데이터가 있습니다. 대부분이 .xlsx 일 때입니다. 테이블에 3 개의 열과 많은 행 (수백만)이 포함되어 있으므로 데이터에 대해 생각할 수 있습니다.Excel을 병합하는 조건부 셀을 만드는 방법은 무엇입니까?

내가이 구현 매크로 구축하려는 : 당신의 인접 셀에 셀이 비어있는 경우

검사, 위의 셀에 자신을 병합합니다.

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  

참고 : 셀은 매우 긴 문자열을 사용할 수 있지만 시작 부분 만 표시됩니다.

희망이 시작됩니다.

관련 문제