Visual Basic for Applications对象问题

问题描述 投票:0回答:1

以下代码是我一直为雇主工作的表单自动化项目的一个大子程序的一部分。

'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。我对为什么为什么这样“ whyareyouactinglikethis”显然设置为with语句正在使用的Object以及finalRow感到困惑。在过去的两个小时中,我一直在盯着这多种方式,这就是我尝试过的方法。

将finalRow更改为long变量

将finalRow更改为Range变量(这引入了错误91语句)

在设置finalRow之前,激活并选择为什么要执行此操作,所以我知道这不是.select错误或缺少适当的引用。

我需要做什么来解决此问题?请告诉我。我还是Visual Basic的新手,所以我不确定这仅仅是我的经验还是一个合法的问题。

excel vba excel-vba
1个回答
0
投票

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

此外,在这里使用的是更富戏剧性的最后一行calc,而从第99,999行开始随意使用

© www.soinside.com 2019 - 2024. All rights reserved.