Excel宏-如何删除行号后的单元格值?

时间:2018-09-20 09:37:53

标签: excel vba excel-vba

A到K列中的条目直到一个特定的数字可能有所不同。 L到Q列的条目直到150,000。我想删除A列中最后一个条目之后的所有条目(此数字是可变的)

录制宏后得到的代码如下。

代码的问题在于它是硬编码 Application.Goto参考:=“ R70086C1”

Sub ExtraDelete()
    ' ExtraDelete Macro
    Range("AN1").Select
    ActiveCell.FormulaR1C1 = "=COUNTIF(C[-39], ""*"")"
    Range("AN1").Select
    Selection.Copy
    Range("AN3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Selection.ClearContents
    Range("AN1").Select
    Selection.Copy
    Application.Goto Reference:="R70086C1"
    Rows("70087:70087").Select
    Range(Selection, Selection.End(xlDown)).Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Range("A70082").Select
    ActiveWorkbook.Save
End Sub

1 个答案:

答案 0 :(得分:1)

  

我要删除A列中最后一个条目之后的所有条目。

通常,您将从列A的底部开始,然后查找以找到最后一个填充的单元格。就像从A1048576开始,然后点按ctrl + <向上箭头>。

Range.Select几乎不需要,也很少是最好的方法。 (read this

Sub ExtraDelete()
    ' ExtraDelete Macro

    with worksheets("sheet1")
        .range(.cells(.rows.count, "A").end(xlup).offset(1, 0), _
               .cells(.rows.count, "A")).entirerow.clear
        .parent.Save
    end with

End Sub