【发布时间】:2022-11-14 07:14:09
【问题描述】:
我使用下面的代码从指定的单元格中找到相应的日期,它给了我一个行号作为整数。我遇到的问题是我想在使用行号两次来确定范围的起始单元格和结束单元格的范围内使用它。我收到'运行时错误'1004' - 对象'_Worksheet'的'方法'范围'失败。
我怎样才能使用这个命名整数两次来获得我需要的东西?我的最后一行代码出现错误。
Set MacroPage = Workbooks("Monthly Inventory Report 2.xlsm").Worksheets("Macro Page")
Set BHLSTracker = Workbooks("Monthly Inventory Report 2.xlsm").Worksheets("Blackhole & Lost Stock Tracker")
Dim DataDate As String: DataDate = MacroPage.Range("D4").Value
Dim TargetDate As Range, TargetRow As Integer
Set TargetDate = BHLSTracker.Columns("A").Find(What:=CDate(DataDate), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows)
If Not TargetDate Is Nothing Then TargetRow = TargetDate.Row
BHLSTracker.Range("E1:F1").Copy
BHLSTracker.Range(Cells(TargetRow, 5), Cells(TargetRow, 6)).PasteSpecial xlPasteFormulas
【问题讨论】:
-
您需要限定
Cells(TargetRow...,否则VBA 将使用Activesheet 的单元格,如果BHLSTracker-Sheet 不是活动表,这将失败。BHLSTracker.Range(BHLSTracker.Cells(TargetRow, 5), BHLSTracker.Cells(TargetRow, 6)).PasteSpecial -
除了上述之外,您正在测试
find,但无论targetrow是否被分配,您都继续前进,这会导致问题。 -
感谢您的快速回复。这样可行。