为列中的最后一行定义一个整数

时间:2018-12-04 15:50:30

标签: excel-vba variables runtime-error row

我收到运行时错误'1004':以下代码(我在其中定义lr)上出现了应用程序定义或对象定义的错误,无法终生解决。

该代码的目的是在定义为“ ProjectDescriptionColumn”的列中搜索匹配的项目描述,并返回位于同一行的单元格中但定义为“ ProjectCodeColumn”的列中的项目代码

任何帮助都将不胜感激。

Dim ProjectDescriptionColumn As Long
Dim ProjectCodeColumn As Long

With Sheets("Completed")
If Cells(LastRowInL, "M").Value = "Engine Ancillaries" Then ProjectDescriptionColumn = 8 And ProjectCodeColumn = 9
End With

Dim lr As Integer
Dim i As Integer

lr = Sheets("VBA_Data").Cells(1, ProjectDescriptionColumn).End(xlDown).Row '<<<Run-time error here>>>

For i = 1 To lr

If UCase(Range(Sheets("Completed").Cells(LastRowInL, "B")).Value) = UCase(Sheets("VBA_Data").Cells(i, ProjectDescriptionColumn).Value) Then
Range(Sheets("Completed").Cells(LastRowInL, "N")).Value = Sheets("VBA_Data").Cells(i, ProjectCodeColumn).Value
End If
Next i

1 个答案:

答案 0 :(得分:0)

如果If语句不为真,则永远不会设置列变量。对我来说,这会产生一个索引错误,而不是1004。但是,运行时错误肯定与当时插入该语句的值有关。您可以单步执行代码,然后检查ProjectDescriptionColumn的值吗?