|
* 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.
- 엑셀 버전(95,97,2000,xp,2003,2007):
* 아래줄에 질문을 작성하세요 >>
안녕하세요
셀 병합에 대하여 문의사항이 있습니다.
예를 들어,
A1열 "엑셀 사용부서"
A2열 "총무부 김홍길"
이렇게 입력된 있는 상태에서
A1열과 A2열 두 열을 셀병합하여 팝업 메시지 "셀을 병합하면 왼쪽 위의 값만 남고 나머지 값은 잃게 됩니다." 확인 단추를 클릭하면 A1열과 A2열 병합되면서 글자 내용은 "엑셀 사용부서"만 표시가 됩니다.
셀병합하고 A1열 이후에도 계속 "엑셀 사용부서" "총무부 김홍길" 글자가 남게 할 수 있는 방법은 어떻게 하면 되는지요?
주변 사람들에게 물어보면 셀 병합 한 후 =A1&A2 입력한 한후 복사-값붙여넣기 / 셀서식-자동 줄바꿈 방법을 알려 줍니다.
알려준 방법으로 하면 열 넓이가 변경된 경우 두 줄 입력이 안되고 1줄로 글자 내용 위치가 변경이 됩니다.
위 내용을 살펴봐주시고 도움을 요청드립니다.
감사합니다.
==============[박인호님 글에 대한 답변입니다]==============
병합하려는 셀을 선택한후 아래 매크로를 실행하세요.
Sub Multi_Murge()
Static vGubun As Variant
Static bGubun As Boolean
Dim rEach As Range
Dim vEach As Variant, vGubunja As Variant
Dim sTemp As String
Dim lRow As Long, lCol As Long
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
.DisplayAlerts = False
End With
On Error GoTo Err_Step
sTemp = ActiveCell.Text
If Not bGubun Then
vGubun = "ChrW(10)"
End If
vGubun = Application.InputBox("텍스트를 묶을 구분자를 입력하세요." & vbCr & "(아스키문자는 ChrW(10) 처럼 입력하세요!!)", "구분자", vGubun)
If VarType(vGubun) = vbBoolean Then
GoTo Exit_Sub
ElseIf LCase(Left$(vGubun, 5)) = "chrw(" Then
vGubunja = ChrW(Val(Mid$(vGubun, 6)))
Else
vGubunja = vGubun
End If
For Each rEach In Selection.Areas
sTemp = vbNullString
vEach = rEach.Value
If IsArray(vEach) Then
For lRow = 1 To UBound(vEach, 1)
For lCol = 1 To UBound(vEach, 2)
If vEach(lRow, lCol) <> "" Then
sTemp = sTemp & vEach(lRow, lCol) & vGubunja
End If
Next lCol
Next lRow
Else
sTemp = vEach & vGubunja
End If
With rEach
.ClearContents
.MergeCells = True
If sTemp <> "" Then
.Value = Left$(sTemp, Len(sTemp) - Len(vGubunja))
End If
End With
Next rEach
bGubun = True
Err_Step:
Exit_Sub:
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True
.DisplayAlerts = True
End With
End Sub
|
|