我仍在進入VBA,目前我正在嘗試執行以下操作: - 根據存儲在字典中的值刪除Excel工作表中的行。基於Excel中的字典值在Excel中刪除行VBA
我有這樣的代碼:
For Each Key In dict.Keys
i = Key
Cells.Rows(i).Delete
Next
那裏之前,我已經填充了字典。這個想法是,「密鑰」存儲了存儲特定值的所有行號,例如「1」。
隨着每個我想要刪除存儲在字典中的所有行,但是一旦您在Excel中刪除一行數字更改。例如,字典中的第一個存儲值是5,因此每個將刪除第5行。字典中的第二個值是10,現在當for每個嘗試刪除第10行時,它將刪除第10行原始文件曾經是第11行。基本上,每個都無法刪除正確的行。
正如我所說,我是VBA的新手,我甚至不確定這是否是正確的方式來做到這一點,或者在這種情況下有比字典更好的東西。我期待聽到您的意見和建議。
預先感謝您!
更新:由Ambie和sktneer解決。檢查答案。
排序字典降序或從最後一行開始。這樣,行號在刪除過程中不會改變。 –
如何排序? – VBABegginer
在代碼表頂部寫入'Option Explicit'。然後聲明所有變量,找到正確的數據類型。選擇「密鑰」並點擊F1。你會被告知這是一個保留給VBA的單詞。所以,最好不要將它用於你自己的目的。最後,不要用'For Each'開始你的實驗。首先構建一個「For ... Next」循環。 – Variatus