VBA在特定范围的细胞和受保护细胞中清除价值,不会被洗去配方

eat*_*ing 7 excel vba excel-vba

我有类似A1的数据:Z50但是我想只使用VBA删除A5:X50(我认为它比拖动整个单元格或使用要快得多clickA5+shift+clickX50+delete).我怎样才能做到这一点 ?

然后,如何锁定单元格以防止它被修复或清除?

Gle*_*ens 16

您可以定义包含以下代码的宏:

Sub DeleteA5X50()   
    Range("A5:X50").Select
    Selection.ClearContents
end sub
Run Code Online (Sandbox Code Playgroud)

运行宏将在活动工作表上选择范围A5:x50并清除该范围内单元格的所有内容.

要保持公式完整,请使用以下代码:

Sub DeleteA5X50()   
    Range("A5:X50").Select
    Selection.SpecialCells(xlCellTypeConstants, 23).Select
    Selection.ClearContents
end sub
Run Code Online (Sandbox Code Playgroud)

这将首先选择您有兴趣清除内容的单元格的整体范围,然后将进一步限制选择仅包括包含excel认为是"常量"的单元格.

您可以通过选择单元格范围在excel中手动执行此操作,点击"f5"以显示"Go To"对话框,然后单击"特殊"按钮并选择"常量"选项并单击"确定".

  • @Glenn你不必选择清除它:)`Sheets(1).Range("A5:X50").ClearContents`会做. (6认同)

Nik*_*las 5

尝试这个

Sheets("your sheetname").range("A5:X50").Value = ""
Run Code Online (Sandbox Code Playgroud)

您也可以使用

ActiveSheet.range
Run Code Online (Sandbox Code Playgroud)

  • @eathapeking将单元格值设置为空白不会*洗掉颜色或任何条件格式* .. :) (2认同)