【问题标题】:Invalid Next Control variable Reference无效的下一个控制变量引用
【发布时间】:2016-06-14 03:24:28
【问题描述】:

编辑我的代码后,我得到一个无效的下一个控制变量引用。是否有人能够解释导致此问题的原因?我的循环顺序的原因是因为我想先检查一行的所有列,然后在寻找新匹配之前全部移动到新行

Sub Macro1()
'
' Loops through data and finds matches and then indexs information
'
Dim J As Integer
Dim P As Integer
Dim v As Integer
IRowL = Cells(Rows.Count, 1).End(xlup).Row

Dim sht As Worksheet
Set Master = Sheets("Master")

For J = 1 To IRowL
    For v = 21 To IRowL
        For P = 1 To IRowL

           If cell.value(j,11)= Master.cell.value(p,1) and Cell.value(j,10) = Master.cell.value(p,v) then



              cell.Value(j, 30) = Master.cell.Value(p, 7)
              cell.Value(j, 31) = Master.cell.Value(p, 8)

           Else
           End If
        Next p
    Next v
Next J

'
End Sub

我想从 B 列(第二张图片)和日期与第一张图片中的 K 列匹配的列名中获取信息。

【问题讨论】:

  • 看起来你的第一个问题是一个额外的“End if”
  • 另一个问题是Then 位于独立行上,无法编译。您正在尝试执行的操作的屏幕截图示例也将派上用场。仅使用代码很难知道您要完成什么。
  • 感谢@ScottHoltzman 的反馈,我添加了一些照片来帮助解释我想要完成的工作。通过反馈提供的信息越多,我就会更好地了解如何完成此代码和未来的代码。
  • 感谢您提供图片,但他们没有出现:(没有
  • 我在浏览器中以及当我注销时看到它们。我可能正在做的事情会导致只有我看到图像吗?我按照教程使用 ![named image] (imger.link.png)

标签: vba excel loops next


【解决方案1】:

Next v 和 Next P 在错误的行上,这就是错误告诉您的内容。当您运行 Next P 时,您已经脱离了 P 循环。

尝试反转线路,它应该会运行。

如果您试图通过明确混合“下一步”语句来解决某些特定问题,您能再解释一下吗?有更清晰的方法来做这样的事情。

【讨论】:

  • 我根据您的建议修复了我的代码,现在我收到运行时错误 424。其中两个 cell.value 将是文本,所以我应该将这些变量的暗淡更改为字符串吗?
  • 我看不到您将任何单元格值分配给变量的位置。但您最好的选择可能是使用 Variant。稍微不太理想,但可能会为您省去一些麻烦。
  • 我尝试使用 Variant,但在这部分代码中仍然出现运行时错误 424。 If cell.Value(J, 11) = Master.cell.Value(P, 1) And cell.Value(J, 10) = Master.cell.Value(P, V)
  • 试试 Cell(x, y).value 代替 Cell.value(x, y)
猜你喜欢
  • 2014-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-17
  • 2013-05-21
  • 1970-01-01
相关资源
最近更新 更多