我创建了一个小程序,我真的不明白为什么我的代码无法工作:O
For Each numberItem In Worksheets("Sheet1").Range("A01:A240").Cells
Dim c As String
Dim cpt As Long
cpt = numberItem
c = Cells(cpt, "B") !!!!!ERROR !!!!!
如果我把1而不是cpt,它就可以了。 我在网上找不到好东西。 它是否存在简单存在?
谢谢你们
答案 0 :(得分:4)
相信你只需要指定你想要的行:
sapply(1:length(trans), function(x) reco(trans[x]))
根据@omegastripes评论更新:
假设循环在单元格A10处,并且A10具有值37
选项1:您想使用numberItem中的行号:
For Each numberItem In Worksheets("Feuil1").Range("A01:A240").Cells
Dim c As String
Dim cpt As Long
cpt = numberItem.Row
c = Cells(cpt, "B")
Next
结果:For Each numberItem In Worksheets("Feuil1").Range("A01:A240").Cells
Dim c As String
Dim cpt As Long
cpt = numberItem.Row
c = Cells(cpt, "B")
Next
选项2:您想要使用单元格A10中的值,然后轻微调整
c = Cells(10, "B")
结果:For Each numberItem In Worksheets("Feuil1").Range("A01:A240").Cells
Dim c As String
Dim cpt As Long
cpt = numberItem.Value
c = Cells(cpt, "B")
Next
答案 1 :(得分:2)
NnmberItem
变量的名称具有误导性。在:
For Each numberItem In Worksheets("Feuil1").Range("A01:A240").Cells
numberItem
将是一个单元格,而不是一个数字。因此,正如Sam Gilbert的回答一样,您仍然必须采用单元格的Row
或Value
属性。虽然Value
属性是默认属性,但显然VB希望你在这里更具体。
答案 2 :(得分:0)
我认为你做了一点改变。 尝试:
Cells("B" & cpt)