[英]Loop through each cell in a range of cells when given a Range object
[英]Loop through cells in range using cell references for the Range
我正在嘗試使用這段代碼遍歷范圍內的單元格。 但它在此處給出的最后一條語句中引發錯誤
“對象不支持此屬性或方法”。
它的替代方案/解決方案是什么。 感謝您的回復。
Dim Rng As Range
Set Rng = Range(Cells(1, 1), Cells(1, lastcolTTR))
Rng.Select
For Each ct In TTRfile.Rng.Cells
我不知道該怎么TTRfile
或ct
聲明,但我知道Rng
是一個Range
,這意味着TTRfile.Rng.Cells
是一個問題,如果沒問題的。
如果ct
是一個變體或范圍對象,那么您可以使用For Each
並且創建循環的語法正確的方法是:
For Each ct In Rng.Cells
但是,如果ct
是數字,就像ct = Rng.Cells.Count
的情況一樣,那么您不能使用For Each
並且必須使用遞增/遞減索引變量:
For i = 1 to ct
此外,您在設置Rng
時隱式使用ActiveWorksheet
,您應該養成明確限定工作表的習慣。 如果TTRfile
是工作表,則
Range(Cells(1, 1), Cells(1, lastcolTTR))
看起來像這樣:
TTRfile.Range(TTRfile.Cells(1, 1), TTRfile.Cells(1, lastcolTTR))
或這個:
With TTRfile
.Range(.Cells(1,1), .Cells(1, lastcolTTR))
End With
說到lastcolTTR
,它是如何聲明的? 如果它不計算為數字,它可能會成為一個問題。 例如,如果它是一個變體,那么它就有可能包含一個范圍,如果該范圍包含多個單元格,您將收到錯誤消息。 此外,請確保您捕獲任何會導致lastcolTTR
小於 1 的條件,因為Cells(1,0)
會產生超出范圍的錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.