【问题标题】:Excel Macro- How to delete cell values after a row number?Excel 宏 - 如何删除行号后的单元格值?
【发布时间】:2018-09-20 18:28:17
【问题描述】:

A 到 K 列的条目直到特定的数字,该数字可能会有所不同。 L 到 Q 列的条目直到 1,50,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

【问题讨论】:

  • 不太清楚您要做什么。您是否要删除 A 列中最后一个值下方的所有行?
  • 是的。 A 到 K 列的条目直到特定数字,该数字可能会有所不同。 L 到 Q 列的条目直到 1,50,000。我想删除 A 列最后一个条目之后的所有条目。

标签: vba excel


【解决方案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

【讨论】:

  • .offset(1,0) 从 A 列的最后一个填充单元格向下移动一行。
  • 我想从 A 列的最后一个条目中删除(我们称之为 X) AX: Q150000 代码能做到吗?
  • 别担心,这可能是一个大错误。您可能应该在原始副本上测试从 Internet 获得的代码。
  • 好的。我还有一个问题。也请善意解决这个问题。
  • 这将是一个新问题,包含新的样本数据、预期结果和(希望)展示了一些原创性的努力。
猜你喜欢
  • 2013-05-11
  • 1970-01-01
  • 1970-01-01
  • 2018-11-16
  • 2013-08-10
  • 2014-03-02
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
相关资源
最近更新 更多