将格式化数据从一张纸复制到另一张

时间:2014-01-21 18:00:50

标签: excel vba excel-vba

我预先格式化了从A4到O5范围内的表格HEAD,我需要将它从我的隐藏设置页面复制到新创建的格式(文本对齐,列大小等)。

我这样做:

    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

似乎Text根据需要进行了格式化,但是列和行大小 - 没有剩余,如何实现?

1 个答案:

答案 0 :(得分: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

应该这样做。