繁体   English   中英

Excel VBA中.Delete和.Clear的区别?

[英]Difference between .Delete and .Clear in Excel VBA?

Worksheets(1).Cells.DeleteWorksheets(1).Cells.Clear什么Worksheets(1).Cells.Clear

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

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

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

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

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

excel vba 中有多种.clear函数可用,专门针对每种情况和您要完成的任务量身定制。 一些文档和解释可以在这个页面上找到这里是几个品种的列表:

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行为的深入解释

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM