我预先格式化了从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
但它失败了
这是我需要看到的:
这就是我得到的:
似乎Text根据需要进行了格式化,但是列和行大小 - 没有剩余,如何实现?
答案 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
应该这样做。