我想在Excel中使用VBA將一個新行添加到表格中。這是相對簡單的,但是如果我嘗試使用通常的「ActiveSheet.ListObjects(」Table1「)。ListRows.Add」,那麼我得到一個錯誤,指出「這不起作用,因爲它會移動表格中的單元格工作表「。我明白爲什麼我會得到這個錯誤(因爲新的一行會移動單元格,使得下面的表格會分開)。使用VBA在Excel表格中添加一個新行時,當其他表格的寬度不同時,使用VBA
那麼,有沒有一種優雅的方式來添加一行到這張表,最好是以這樣的方式添加一個整行(沒有數據需要從表中水平擔心)?我寫了一些我寫的代碼,增加了一個全新的行,但它依賴於啓用了AutoFormat,並且在處理大量表時(我的原始文件有更多,該截圖僅來自我製作的虛擬文件)。
我試圖做到這一點的原因是我有幾個表與相同的名稱,但不同的水平長度的列表,並試圖創建一個宏,將爲所有表添加一個新的名稱。我也嘗試調整表格的大小,但似乎從未如此。請參閱下面的屏幕截圖和代碼。
在此先感謝。
Sub AddName()
Range("Table1").EntireRow(Range("Table1").Rows.Count).Select
Selection.Offset(1, 0).Select
Selection.EntireRow.Insert
Selection.Offset(-1, 0).Copy Destination:=Selection
Selection.ClearContents
Selection.Cells(1, 1).Value = Name
End Sub
將較低的表格移動到您要插入的表格的右側,還是移動到另一個表格可以解決問題? –
同意馬克。最好先處理這類問題的根源,即放置你的表格。除非有必要以這種方式安排表格的具體原因,否則無論何時嘗試向他們添加數據(甚至是手動),都將不可避免地遇到問題。這並不是說他們必須採取行動,但這肯定會使事情複雜化。 –
不幸的是,在這種情況下移動表格是不可能的。 – Jakub64