2014-01-21 7 views
0

У меня есть предварительно отформатированная таблица HEAD в диапазоне от A4 до O5, и мне нужно скопировать ее с моей страницы скрытых настроек на новый созданный со всеми форматированием (текст, размер столбца и т. Д.).Скопируйте отформатированные данные с одного листа на другой

Я делаю это:

Dim WS As Worksheet 
    Dim SheetName As String 
    SheetName = TextBox1.Text 
    Sheets.Add.Name = SheetName 
    Sheets("AdminSettings").Range("A4:O5").Copy 
    Sheets(SheetName).Paste 
    Sheets("Programma").Select 

Я нашел это:

Sheets(SheetName).PasteSpecial xlPasteFormats 

, но он не

Это то, что мне нужно, чтобы увидеть:

enter image description here

это то, что я получаю:

enter image description here

кажется, что текст форматируется по мере необходимости, но столбцов и строк размеры - не остаются, как достичь этого?

+0

Вы пробовали '.PasteSpecial xlPasteAll'? – Joe

+0

Просто попробовал. Ошибка времени выполнения '1004 ': PasteSpecial метод класса рабочей таблицы не удалось – Cheese

ответ

1

Во-первых, использовать .PasteSpecial, вы должны вставить в определенный диапазон на листе, так:

Sheets(SheetName).Range("A1").PasteSpecial ... 

Вы пытаетесь скопировать ширину столбцов и высоту строк. Чтобы вставить высоты строк, вся строка должна быть скопирована и вставлена. Чтобы вставить ширину столбцов, требуется второй вызов .PasteSpecial xlPasteColumnWidths.

Итак:

Sheets("AdminSettings").Range("4:5").Copy 
Sheets(SheetName).Range("A1").PasteSpecial xlPasteAll 
Sheets(SheetName).Range("A1").PasteSpecial xlPasteColumnWidths 

должны это сделать.

+0

Спасибо, это действительно трюк – Cheese

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