为什么细胞(变量," B")不起作用

时间:2016-04-09 12:18:54

标签: excel vba excel-vba

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

谢谢你们

3 个答案:

答案 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的回答一样,您仍然必须采用单元格的RowValue属性。虽然Value属性是默认属性,但显然VB希望你在这里更具体。

答案 2 :(得分:0)

我认为你做了一点改变。 尝试:

Cells("B" & cpt)