2016-03-03 72 views
0

说我有一个快速的for循环中的命名范围:VBA参考项目在for循环

Dim rng As Range 
For Each itm In Range("List") 
itm.Value = "fish" 
next itm 

工作正常。但如果我要改变第三行

itm.Offset(0,1).Value = "fish" 

然后有一个问题,因为它不是一个范围(我认为)。有没有办法引用itm的范围,或者设置for循环来引用单元格/范围而不是itm的值。 (和为什么原来的工作?)

+0

为我工作。问题是什么? – CustodianOfCode

+0

尝试'Range(“List”)。Cells' then ...有时你需要添加这个来表明你想要为每个单元格去 –

+0

@dirk reichel修复它,谢谢。之后意识到有些人在工作,有些人不是这样,这是别人最初的想法。但使用范围(“列表”)似乎使它意识到你正在为一个单元格,所以它现在的作品。 – PVar

回答

0

如果你明确声明ITM的范围

然后你for..each块将每个单元返回的范围

附:如果你只是想所有的单元设置为fish那么你可以使用这些线,并完全避免循环:

Range("List").Value = "fish" 

Range("List").Offset(0,1).Value = "fish"