簡體   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