我想知道在从表中清除行时如何保存单元格格式。我有一个包含许多列的表,每列都有一个特定的公式或函数。我有一个按钮,通过清除所有旧行刷新表。所以问题是当我刷新时我失去了所有的功能。
Public Sub refresh()
'
' refresh Macro
'
' Touche de raccourci du clavier: Ctrl+y
'
Dim ws1 As Worksheet, ws2 As Worksheet, lr1 As Long
Set ws1 = ThisWorkbook.Worksheets("Scénarios de menace")
Set ws2 = ThisWorkbook.Worksheets("Analyse de risque S")
ws2.Range("B6:AP" & ws2.Cells(ws2.Rows.Count, 2).End(xlUp).Row).Clear
lr1 = ws1.Cells(ws1.Rows.Count, 2).End(xlUp).Row
Application.ScreenUpdating = False
ws1.Range("A1:A" & lr1).AutoFilter Field:=1, Criteria1:="x"
ws1.Range("B2:AP" & lr1).SpecialCells(xlCellTypeVisible).Copy
ws2.Range("B6").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
ws1.Range("A6:A" & lr1).AutoFilter
ws2.Activate: ws2.Cells(1, 1).Activate
Application.ScreenUpdating = True
End Sub
答案 0 :(得分:2)
清除盒子上的内容。它清除了对象。完成后,对象没有值,没有格式,也没有公式。
如果要保留公式和格式,但保留行,则需要清除具有常量的单元格的内容,即不要清除整行。
您可能希望遍历行中的每个单元格或直接定位它们并使用ClearContents。
但是,这似乎是浪费空间。在任何情况下,使用Excel表并删除行可能更合适。因为,在Excel表中,任何新行都将自动继承公式和格式,因此您可以删除任何行并添加将自动执行到表设置的新行。