2016-06-23 3 views
0

코딩에 익숙해 져서 제발 도와주세요.여러 워크 시트를 하나의 워크 시트로 병합했지만 형식이 원래 워크 시트와 다릅니다.

이 코드는 kutools.cs에서 가져 왔습니다. 모든 워크 시트를 하나의 시트로 병합하려고하지만 "결합 된"시트가 마지막 워크 시트 여야합니다. 그래서 코드의 일부분을 수정했습니다.

실행하면 비정상적으로 변합니다. 결합 된 시트를 시트 (1)에 넣으면 매우 다릅니다. 글꼴의 길이, 기둥의 길이와 같은 원본 시트의 형식이 많이 달라졌습니다. 결과는 "붙여 넣기 값"을 수행 한 것과 같습니다. 목적지를 시트 (1)로 변경하면 매우 다릅니다.

죄송합니다. 영어로 불편을 드려 죄송합니다. 내 시트의 예가 하나 있는데, 모든 시트의 형식과 헤더가 동일합니다. Snapshot

"RAW"라는 마지막 시트에 새 시트의 모든 데이터를 결합했을 때의 결과입니다. Snapshot of RAW worksheet

형식은 노인에게 알맞은 방식으로 보고서를 제출할 때 매우 중요합니다.

더 나은 형식을 알려주십시오.

그리고 여기 코드가 있습니다. sheets(1).active 방금에서 1 행을 복사하는 유효하지 않은 코드이기 때문에

Sub merge() 
    Dim P As Integer 
    Dim lastws As Worksheet 
    On Error Resume Next 
    'Sheets(1).Select 
    'Worksheets.Add 
    'Sheets(1).Name = "RAW" 
    'Set lastsht = After:=Worksheets(Worksheets.Count) 

    'Worksheets(Worksheets.Count).Select 
    'Worksheets.Add 
    'Worksheets(Worksheets.Count).Name = "RAW" 

    Set lastws = Worksheets.Add(After:=Worksheets(Worksheets.Count)) 
    lastws.Name = "RAW" 
    'nice udah bisa 

    Sheets(1).Active 
    Range("A1").EntireRow.Select 
    Selection.Copy Destination:=Sheets("RAW").Range("A1") 
    For P = 2 To Sheets.Count 
     Sheets(P).Activate 
     Range("A5").Select 
     Selection.CurrentRegion.Select 
     Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select 
     Selection.Copy Destination:=Sheets("RAW").Range("A65536").End(xlUp)(2) 
    Next 
    Sheets("RAW").Select 
    MsgBox ("Here is merged data!") 
End Sub 

답변

0

On Error Resume Next 제거하십시오 당신이 당신의 자신의 코드에서 오류를 볼 수 있습니다, 당신은 제목을하지 않는 이유는 순간적으로 자체 되돌아갑니다. columns("a:k").autofit은 대상 시트의 열의 크기를 조정합니다. 나머지 서식에 대해서는 실제로 첫 번째 시트에 표시하지 않았지만 사용 된 직선 인 .copy destination:=whatever은 셀 서식을 유지해야합니다.

+0

'sheets (1) .active'는 다음과 같습니다. 잘못된 코드, 올바른 코드의 예를 들어 주시겠습니까 ?? 잘못된 코드를 대체하는 가장 좋은 방법은 무엇입니까 ?? – tianda

관련 문제