2016-06-23 2 views
0

Я новичок в кодировании, поэтому, пожалуйста, помогите мне.Объединение нескольких листов в один рабочий лист, но его формат не похож на оригинал

Этот код из kutools.I хочу объединить все листы в один лист, но «комбинированный» лист должен быть последним из листов. Поэтому я отредактировал некоторые части кода.

Когда я бегу, он становится ненормальным, это очень отличается, если вы положите комбинированные листы в листы (1). кажется, что формат в оригинальных листах, таких как шрифт, длина столбца, сильно варьировался. Результат такой, как я сделал только «PASTE VALUE». Совсем другое, если я изменю назначение в листах (1).

Извините за плохой английский, вот пример моего листа, все листы имеют одинаковый формат и заголовок. Snapshot

Вот результат, когда я объединил все данные в новых листах, на последнем листе с именем «RAW» формат исчез. Snapshot of RAW worksheet

Формат очень важен для представления отчетов надлежащим образом представляемым для пожилых людей.

не могли бы вы помочь мне для лучшего формата?

И вот код.

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, и вы будете в состоянии видеть ошибки в своем коде, то причине вы не получаете, потому что заголовок sheets(1).active не правильный код, вы просто скопировать строку из 1-й сырой обратно на себя в данный момент. columns("a:k").autofit изменяет размеры столбцов в листе адресата. Что касается остальной части форматирования, вы на самом деле не показывали ее на своем первом листе, но прямая .copy destination:=whatever, как вы уже использовали, должна сохранять штраф в форматировании ячейки

+0

halo hello world, если 'sheets (1) .active' is неверный код, не могли бы вы привести мне пример правильного кода? и какой лучший ответ заменить недействительный код? – tianda

Смежные вопросы