我有一個Excel文件,它從外部獲取數據並將其寫入ListObject。在ListObject調整大小後關閉凍結
由於通過ListRows.Add逐行添加行非常慢,因此我會將正確數量的空行添加到表單並調整ListObject的大小。
這個作品真的很好在Excel 2010中
使用Excel 2007年,它的工作原理,但是當用戶關閉工作簿或Excel中,它凍結和Windows顯示它的碰撞窗(詢問是否要關閉,重新啓動或調試應用)。
這真的很討厭,看起來不太好:)。
任何想法,我可以做些什麼來防止這種情況?
也許你有一個更好的主意,快速成千上萬的ListObject行?
此外,隨機(我重新打開文件沒有改變和執行宏),調整大小失敗,錯誤消息和Excel崩潰,如果我停止執行。
這裏是添加空行的功能,如果我一步一步跟蹤它,它所有的範圍都是正確的,它做我需要的。
我敢肯定這是這個函數導致問題,因爲當我評論該函數的調用時它會消失。
Sub AddRowsToListObject(sheetName As String, myTable As ListObject, addRows As Long)
Dim i As Long
If addRows > 0 Then
Sheets(sheetName).Activate
'Add empty rows at the end
i = myTable.DataBodyRange.row + myTable.ListRows.Count
Sheets(sheetName).Range(Cells(i, 1), Cells(i + addRows - 2, 1)).EntireRow.Insert shift:=xlDown
'Offset -1 as you need to include the headers again
myTable.Resize myTable.DataBodyRange.Offset(-1, 0).Resize(myTable.ListRows.Count + addRows, myTable.ListColumns.Count)
End If
End Sub
我已經這樣做了(在主函數中)。它仍然崩潰。 –