[英]loop through cells in named range
我正在嘗試編寫將循環遍歷范圍內所有單元格的代碼。 最終我想做一些更復雜的事情,但由於我遇到了麻煩,我決定創建一些簡短的測試程序。 第一個示例工作正常但第二個示例(帶有命名范圍)沒有(給出“Object_Global失敗的方法范圍”錯誤消息)。 關於我做錯了什么的任何想法? 我真的很想用命名范圍來做這件事......謝謝!
作品:
Sub foreachtest()
Dim c As Range
For Each c In Range("A1:A3")
MsgBox (c.Address)
Next
End Sub
不起作用:
Sub foreachtest2()
Dim c As Range
Dim Rng As Range
Set Rng = Range("A1:A3")
For Each c In Range("Rng")
MsgBox (c.Address)
Next
End Sub
設置Rng = Range(“A1:A3”)正在創建范圍對象,而不是命名范圍。 這應該工作
Sub foreachtest2()
Dim c As Range
Dim Rng As Range
Set Rng = Range("A1:A3")
For Each c In rng
MsgBox (c.Address)
Next
End Sub
如果你想創建一個名為Rng的命名范圍
Range("A1:A3).Name="Rng"
將創建它,或者您可以像thsi一樣創建和循環它
Dim c As Range
Range("a1:a3").Name = "rng"
For Each c In Names("rng").RefersToRange
MsgBox c.Address
Next c
要調整第二個代碼,您需要認識到您的范圍rng現在是一個表示范圍的變量,並將其視為:
Sub foreachtest2()
Dim c As Range
Dim Rng As Range
Set Rng = Range("A1:A3")
For Each c In rng
MsgBox (c.Address)
Next
End Sub
警告:大多數情況下,如果可以避免在整個范圍內循環,則代碼會更快。
試試這個,相反:
Sub foreachtest2()
Dim c As Range
Range("A1:A3").Name = "Rng"
For Each c In Range("Rng")
MsgBox (c.Address)
Next
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.