【问题标题】:Difference between .Delete and .Clear in Excel VBA?Excel VBA中.Delete和.Clear之间的区别?
【发布时间】:2020-10-01 20:44:51
【问题描述】:

Worksheets(1).Cells.DeleteWorksheets(1).Cells.Clear 有什么区别?

我问这个是因为我一直使用.Clear 来清除我的工作表内容,但在我之前的帖子中我发现Worksheets(1).Cells.Delete 不仅删除了我的工作表内容,而且还将列设置为默认值宽度!

谁能解释我的区别?我也可以给.Delete一个范围吗?

【问题讨论】:

  • .clear 相当于单击一个单元格并按退格键直到内容消失。这摆脱了文本和格式,但没有别的,单元格设置仍然存在。 .delete 比这更严格一些,它完全摆脱了整个单元格并用一个全新的单元格替换它。所有格式、设置和内容都消失了,您可以从一个新单元格开始。
  • 所以.Delete 基本上是删除整个单元格并用新的单元格替换它?但是我的意思是这个功能有点奇怪......等等让我编辑帖子。
  • @Plutian 单元格设置和格式化有什么区别?真正的问题。
  • @QHarr 格式决定了显示文本的显示方式。想想粗体 斜体cell colour。单元格设置更像是 的单元格、条件格式和指定的“数字格式”。有关不同 .clear 品种的文档,请参阅我的答案,这些品种会根据您的情况清除某些类型的设置和格式。
  • @QHarr 也许差异不是很大,因为这些词实际上是同义词,所以会有几位专家使用任何一个词来解释同一件事。我个人认为差异更像是:“格式化”可以在单元格内完成,您可以在普通文本旁边放置 Bold 文本。 “设置”是影响整个单元格的东西,例如边框和背景颜色等。你不能有一点显示它的单元格,它要么全部要么什么都没有。正如我所说,请查看我或@buran 的答案,以查看专门针对您要执行的操作而定制的 .clear 句柄。

标签: excel vba function


【解决方案1】:

Range.Delete 实际上删除了相应的范围并相应地移动/移动单元格,从而改变了工作表的结构。如果您选择单元格并右键单击删除选择,则相同。系统询问您要如何移动单元格。

Range.Clear 只会清除内容和格式,但不会删除单元格,也不会改变工作表的结构。

还有Range.ClearContents 将仅清除内容,但保留格式,Range.ClearFormats 仅清除单元格的格式,Range.ClearCommentsRange.ClearHyperlinksRange.ClearNotesRange.ClearOutline

【讨论】:

    【解决方案2】:

    excel vba 中提供了多种.clear 函数,专门针对每种情况和您要完成的任务量身定制。一些文档和解释可以在on this page找到 以下是几个品种的列表:

    Clear            Remove formatting and contents 
    ClearFormats     Remove cell formatting, including font format 
    ClearComments    Remove comments 
    ClearHyperlinks  Reomve hyperlinks, but the default format of hyperlink is not removed 
    Clear Notes      Remove Notes 
    ClearOutline     Remove Outline 
    Delete           Remove the entire cell
    

    深入解读.delete行为can be found here.

    简而言之,.clear 会在指定时删除单元格内容和某些类型的格式。 .delete 删除整个单元格和任何格式,并将其余文档移入以填补空白。

    @ChangeWorld 回答您编辑的问题: .delete 完全删除单元格,但移动它周围的单元格以覆盖间隙。就像水在洞里流动一样。替换它的单元格可以位于下方并应用相同的设置。如果您希望设置完全消失,请使用.entirerow.delete,它会删除该行并将其替换为它下面的行。 .entirecolumn.delete 删除该列并将其替换为右侧的列。无论单元格替换已删除的单元格,这些单元格的设置和格式都会应用。

    【讨论】:

      猜你喜欢
      • 2012-08-21
      • 2018-10-27
      • 2011-03-22
      • 2012-12-16
      • 2016-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-15
      相关资源
      最近更新 更多