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

时间:2013-01-18 08:19:56

标签: excel vba excel-vba

我有来自A1:Z50的数据,但我想使用VBA仅删除A5:X50 (我认为它比拖动整个单元格或使用clickA5+shift+clickX50+delete)快得多。 我怎么能这样做?

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

3 个答案:

答案 0 :(得分:15)

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

Sub DeleteA5X50()   
    Range("A5:X50").Select
    Selection.ClearContents
end sub

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

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

Sub DeleteA5X50()   
    Range("A5:X50").Select
    Selection.SpecialCells(xlCellTypeConstants, 23).Select
    Selection.ClearContents
end sub

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

您可以通过选择单元格区域在excel中手动执行此操作,点击“f5”以显示“转到”对话框,然后单击“特殊”按钮并选择“常量”选项并单击“好'。

答案 1 :(得分:5)

试试这个

Sheets("your sheetname").range("A5:X50").Value = ""

您也可以使用

ActiveSheet.range

答案 2 :(得分:2)

不确定VBA的速度更快 - 在普通Excel程序中执行此操作的最快方法是:

  1. Ctrl-G
  2. A1:X50 Enter
  3. Delete
  4. 除非你经常这样做,否则输入然后触发VBA代码会更加努力。

    如果您只想删除公式或值,可以插入Ctrl-G, Alt-S以选择转到特殊值,然后选择公式或值。