下面的代码是我一直在为我的雇主工作的一个表单自动化项目的更大的Sub的一部分。
'the following variable is named thusly for good reason.
Dim whyareyouactinglikethis As Object
Set whyareyouactinglikethis = Workbooks("DRQ Log.xlsx").Worksheets("DRQ's")
Dim finalRow As Object
With whyareyouactinglikethis
Set finalRow = Cells(99999, 1).End(xlUp).Row
End With
Dim Source As Range
Source = whyareyouactinglikethis.Range("D8:D" & finalRow & "")所以我现在的问题是,不管是什么原因,当我设置finalRow时,我得到了一个运行时错误424。我真的很困惑,为什么“为什么你这样做”被明确地设置为with语句正在使用的对象,finalRow也是如此。在过去的两个小时里,我一直在以多种方式盯着它,这是我尝试过的。
将finalRow更改为long变量
将finalRow更改为范围变量(这会引入错误91语句)
在设置finalRow之前激活并选择为什么要这样做,这样我就知道这不是.select错误或缺少适当的引用。
我需要做些什么来解决这个问题?请让我知道。我对Visual Basic还有些陌生,所以我不确定这是我的经验不足,还是这是一个合法的问题。
发布于 2020-05-19 00:33:52
Set对象(工作簿、工作表、范围等)并赋值(最后一行变量、字符串等)。
Sub try()
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("DRQ's")
Dim lr As Long, Source As Range
lr = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
Set Source = ws.Range("D8:D" & lr)
End Sub此外,这里从第99,999行开始使用了一个更具盗版色彩的最后一行计算
https://stackoverflow.com/questions/61874352
复制相似问题