Excel 删除单元格而不向上移动

Excel 删除单元格而不向上移动,excel,delete-row,shift,vba,Excel,Delete Row,Shift,Vba,我有vba宏来删除选定的单元格。它会在删除单元格后自动将其上移。我不希望单元格向上移动,因为我在单元格下方有一张图表,如果单元格向上移动,一切都会受到干扰 这是我用来删除单元格的代码 ActiveSheet.UsedRange.Select ActiveSheet.Range("C2:H8").Select Selection.Delete 让我知道如何在不升级的情况下删除它们。如果我理解正确,我认为使用ClearContent而不是delete应该可以提供您想要的功能 或者,您可以指定希望

我有vba宏来删除选定的单元格。它会在删除单元格后自动将其上移。我不希望单元格向上移动,因为我在单元格下方有一张图表,如果单元格向上移动,一切都会受到干扰

这是我用来删除单元格的代码

ActiveSheet.UsedRange.Select
ActiveSheet.Range("C2:H8").Select
Selection.Delete

让我知道如何在不升级的情况下删除它们。

如果我理解正确,我认为使用ClearContent而不是delete应该可以提供您想要的功能

或者,您可以指定希望单元格移动的方式,如果该方式更适合您尝试执行的操作:

发件人:

表达式。删除(Shift)

需要表达。返回范围对象的表达式

换档可选变量。仅用于范围对象。指定如何移动单元格以替换已删除的单元格。可以是以下XlDeleteShiftDirection常量之一:xlShiftToLeft或xlShiftUp。如果省略此参数,Microsoft Excel将根据范围的形状进行决定


你有没有考虑过仅仅是清晰的内容

ActiveSheet.Range("C2:H8").ClearContents
如果合并单元格有问题,请尝试:

ActiveSheet.Range("C2:H8").Value = ""
你可以用

ActiveSheet.Range("C2:H8").ClearContents 

这将清空内容而不移动任何内容

在我的例子中,很容易使用Delete,而不会干扰行顺序,只需从最底行开始循环,直到所选范围的标题:

Cells(rw, 4).Activate
For i = rw To 1 Step -1
   Set Clr = Cells(i, 4)
   If Not Clr.Text Like "R*" Then
    Clr.EntireRow.Delete Shift:=xlUp

   End If
Next i

删除单元格后,下方或左侧的单元格将移动以取代其位置。关于你的图表,它们是如何受到干扰的?@Dick:我尝试了clearcontents,但出现了一个错误“无法更改合并单元格”,因为我的合并单元格太少了。噢,我不喜欢合并单元格。尝试
ActiveSheet.Range(“C1:H8”).MergeArea.ClearContents
我刚刚尝试了普通单元格和合并单元格的混合选择,效果非常好。您正在使用哪个版本的Excel?我尝试了clearcontents,但由于合并的单元格很少,因此出现错误“无法更改合并的单元格”。