所以我有一列資料(玩家名稱)是我從另一個 Excel 檔案中粘貼過來的。單元格A2具有第一個玩家名稱,然后有幾個空白行(每個名冊表的空白行數不同),我試圖確定下一個非空單元格的行號:
nextPlayerRow = rosterSh.Columns("A").Find(What = "*", after:=rosterSh.Range("A2"), LookIn:=xlValues).row
wherenextPlayerRow被宣告為Integer. 但是,這會回傳運行時錯誤 91。
我究竟做錯了什么?
uj5u.com熱心網友回復:
運行時錯誤 91 是未設定物件變數。可能是您沒有完成初始化 rosterSh 的設定,或者您的 .find 沒有找到任何內容,因此無法回傳 .row。
當您使用 .find 方法時(或任何時候您需要方法的屬性),您應該首先使用 Set 檢索物件,然后在嘗試訪問其屬性之一之前檢查該物件是否存在,如:
Set nextPlayerCell = rosterSh.Columns("A").Find(What = "*", after:=rosterSh.Range("A2"), LookIn:=xlValues)
If Not nextPlayerCell is nothing then
nextPlayerRow = nextPlayerCell.row
End If
uj5u.com熱心網友回復:
而不是使用Find你可以使用End(xlDown)。
nextPlayerRow = rosterSh.Range("A2").End(xlDown).Row
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/353930.html
上一篇:如何使用命名范圍作為驗證參考
