为什么单元格(variables,“B”)不起作用

我创build一个小程序,我真的不明白为什么我的代码不能工作: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,它是工作。 我在网上找不到什么好东西。 是不是简单的存在或不存在?

多谢你们

相信你只需要指定你想要的行:

 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 

更新基于@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 

结果: c = Cells(10, "B")

选项2:您想使用单元格A10中的值,然后稍作调整

 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 

结果: c = Cells(37, "B")

您的NnmberItemvariables的名称是误导性的。 在:

 For Each numberItem In Worksheets("Feuil1").Range("A01:A240").Cells 

numberItem将是一个单元格,而不是一个数字。 因此,正如Sam Gilbert的回答一样,您仍然需要获取单元格的RowValue属性。 虽然Value属性是默认的属性,但VB显然希望你在这里更加具体。

我想你只是稍微改变一下。 尝试:

 Cells("B" & cpt)