修改复制脚本以保留格式



我有一个复制脚本,它工作得很好,只是在运行时丢失了格式。我丢失了水平和垂直居中的文本、单元格背景色(用于条件)、所有边框和任何文本效果(粗体/下划线/斜体)。为了添加统一的边界,我使用

Range("CSResults").Borders.LineStyle = xlContinuous

虽然这是可行的,但并非所有边框的厚度都相同,单元格背景颜色也会根据单元格的内容而变化。

我需要修改我当前的脚本以保持格式。

复制脚本

Dim SectionCS As Long, NextRow As Long, TotalRows As Long
 Sheets("CS Results").Activate
 Range("CSResults").Select
 Selection.AutoFilter
 Range("CSResults").Clear
 For SectionCS = 1 To 13 '36
    NextRow = Sheets("CS Results").Range("A" & Rows.Count).End(xlUp).Row + 1 'Next empty row
    Sheets("Function Test Procedure - CS").Activate
    TotalRows = Range("CSSec" & SectionCS).Rows.Count
    Sheets("CS Results").Range("A" & NextRow).Resize(TotalRows, 14).Value = _
        Range("CSSec" & SectionCS).Columns("A:N").Value
 Next SectionCS

从技术上讲,您不是在复制/粘贴,而是在设置相等的值。要粘贴数据和格式,请使用pasteSpecial:

Range("CSSec" & SectionCS).Columns("A:N").Copy
With Sheets("CS Results").Range("A" & NextRow).Resize(TotalRows, 14)
     .PasteSpecial xlPasteFormats
     .PasteSpecial xlPasteValues
End With
Application.CutCopyMode = False

这应该有效,只需仔细检查复制范围是否准确即可。

最新更新