Worksheets(1).Cells.Delete
和Worksheets(1).Cells.Clear
之间的区别是什么
我之所以问这个问题,是因为我一直使用.Clear
来清除我的工作表内容,但在我之前的帖子中,我发现Worksheets(1).Cells.Delete
不仅删除了我的工作表内容,而且还设置了默认宽度的列!
有人能给我解释一下其中的区别吗?另外,我可以给.Delete
一个范围吗?
发布于 2019-09-09 15:13:20
Range.Delete
实际上删除了相应的范围并相应地移动/移动了单元格,从而改变了工作表的结构。如果您选择单元格,然后单击鼠标右键以删除所选内容,则情况相同。系统会询问您希望如何移动单元格。
Range.Clear
将仅清除内容和格式,但不会删除单元格,也不会更改工作表的结构。
还有仅清除内容但保留格式的Range.ClearContents
、仅清除单元格格式的Range.ClearFormats
以及Range.ClearComments
、Range.ClearHyperlinks
、Range.ClearNotes
和Range.ClearOutline
发布于 2019-09-09 15:21:52
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
behaviour can be found here.
简而言之,指定时,.clear
会删除单元格内容和某些类型的格式。.delete
将删除整个单元格和任何格式,并将其余文档移入以弥补空白。
@ChangeWorld回答您编辑过的问题:.delete
会完全删除单元格,但会移动单元格周围的单元格以覆盖间隙。就像水在洞里流过。替换它的单元格可以在下面,并应用相同的设置。如果您希望这些设置完全消失,请使用.entirerow.delete
,它会删除该行并将其替换为它下面的行。.entirecolumn.delete
删除了该列,并将其替换为右侧的列。无论用什么单元格替换已删除的单元格,都将应用这些单元格的设置和格式。
https://stackoverflow.com/questions/57849186
复制相似问题