【问题标题】:How to copy and paste formatting from the bottom cell of a table to the next cell below it?如何将表格底部单元格中的格式复制并粘贴到其下方的下一个单元格中?
【发布时间】:2020-07-30 17:32:51
【问题描述】:

如果条目的日期 > 2 周,我有一个宏可以从表格中删除单元格。然后删除这些单元格。但是,这会导致我的数据输入格式化区域每次都缩短,因此我正在尝试找到解决此问题的方法。我的想法是写一段从最后格式化的行复制格式并将其直接粘贴到它下面,但我不确定如何在 VBA 中执行此操作。我是 VBA 的新手,想知道是否有人知道如何提供帮助?谢谢!

【问题讨论】:

  • 为什么不直接ClearContents 而不是切割单元格?或者我误解了你在做什么。
  • 我在这个项目的另一部分使用了 ClearContents,但是我需要删除包含旧日期的单元格,然后如果我不删除它们,它会在数据之间留下很大的空格'告诉。如果有办法编写它以便我可以 ClearContents 然后在每次清除一个单元格时将其下方的所有单元格向上移动一个,我也可以这样做。

标签: excel vba


【解决方案1】:

听起来您的目标基本上是让您的数据条目表也成为您的汇总表,从而清除所有超过 2 周的条目。这似乎最终会在某个时候对您产生反作用 - 例如,如果您想提取有关您在去年输入的所有内容的报告怎么办?

更好的方法似乎是有一个数据输入表,您可以在其中保存所有内容,然后是一个摘要显示,它会主动提取过去两周的数据。为此,您可以使用 VBA 根据日期过滤数据集,然后将信息复制到新工作表(只需使用功能区“主页”选项卡中的过滤工具手动执行一次,同时将您的操作记录到新宏,你应该可以很容易地清理它)。

如果您必须就地编辑,并且假设您不介意按日期排序,请录制一个宏,在其中选择完整的格式化范围,打开过滤,按日期列过滤,删除内容(只需使用删除键),然后按日期对其余部分进行排序。

问题的原因是在使用 range.delete 命令时,您正在从存在中删除单元格(并因此缩小格式化范围) - 您只想清除内容,然后将所有数据向上移动以填充空白处。

祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-15
    • 2017-01-09
    • 1970-01-01
    相关资源
    最近更新 更多