我已经碰到了几次,总是很讨厌。我可以解决这个问题,但我想弄清楚是否有理由或更容易解决。
我已经使用
定义了包含我所有数据的范围<?xml version="1.0"?>
<package >
<metadata>
...
</metadata>
<files>
<file src="readme.txt" target="" />
<file src="bin\Win32\Release\*.dll" target="lib\net461" />
<file src="bin\Win32\Release\*.pdb" target="lib\net461" />
</files>
</package>
现在我想查看该范围第一列中的每个单元格,并且我试图这样做:
Set rngAll = range("A8",cells(usedrange.rows.count,usedrange.columns.count))
当我运行代码时,Set rngUserIDs = rngAll.columns(1)
For each rngCell in rngUserIDs
Do Something
next rngCell
不是在rngUserIDs
中查看每个单独的单元格,而是将自身设置为与rngCell
的整体相匹配。如果rngUserIDs
= A8:A1000,而不是从A8开始并向下循环,rngUserIDs
立即= A8:A1000,做它的东西,然后退出循环。
如果我以任何其他方式设置rngUserIDs,例如:
rngCell
它完美无缺,依次查看每个细胞。
这种行为有原因吗?我能做些什么吗?是的,我可以解决它,但由于各种结构原因,如果我可以使用set rngUserIDs = Range("A8","A" & range("A" & rows.count).end(xlup).row)
For Each rngCell in rngUserIDs
Do Something
next rngCell
的第一列,将会很方便。
答案 0 :(得分:1)
你必须指定Cells属性,原因我并不完全确定我认为最后一个选项是最好的,尽管你想尽可能地限制你的范围。
Set rngUserIDs = rngAll.columns(1)
For each rngCell in rngUserIDs.Cells
Do Something
next rngCell