删除并保持布局 - VBA

时间:2016-08-18 10:37:33

标签: excel vba excel-vba formatting

我正在尝试制作一个宏,它会提示用户输入一个单元格范围,然后删除工作表中的所有其他内容(包括颜色,边框等)。用户输入的单元格范围必须与之前相同,其他所有内容应与空白表格相同。

我最初尝试过类似的东西,但不知道如何完成它。希望你能帮帮我。

Public Sub Removeformulas()


'Prompt user to select cell range to keep

Set rng = Application.InputBox("Select a range", "Obtain Range Object", Type:=8)

rngrows = rng.Rows.Count
rngcols = rng.Columns.Count

For i = 1 To rngrows
    For j = 1 To rngcols
        celltocopy = Cells(i, j)
    Next j
Next i

End Sub

1 个答案:

答案 0 :(得分:0)

试试这个:

Sub Clean()

     Application.DisplayAlerts = False
     Rng = InputBox("input range, format A1:B5")

     Range(Rng).Copy
     oldname = ActiveSheet.Name
     Sheets.Add.Name = "Test"
     'Range(Rng).PasteSpecial xlPasteAll

     With Range(Rng)
        .Cells(1).PasteSpecial xlPasteColumnWidths
        .Cells(1).PasteSpecial xlPasteValues, , False, False
        .Cells(1).PasteSpecial xlPasteFormats, , False, False
        .Cells(1).Select
        Application.CutCopyMode = False
    End With

    Sheets(oldname).Delete

    Sheets("Test").Name = oldname
    Application.DisplayAlerts = True
End Sub

它将创建一个名为“Test”的新工作表并将值粘贴到那里,然后删除旧工作表并将“Test”重命名为旧工作表被调用的任何内容。