VBA - 尝试复制到变量单元格时出现运行时错误 - 如果我使用 .End(xlUp) 它会起作用,为什么 .End(xlRight) 是一个问题?

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

我有多个报告正在提取相同的数据。我试图通过在该数据的第一次迭代结束时复制标识符来标记这些重复项。目前我的代码如下:

        Set OppID = OwnerName.Offset(0, -3)
        Set CurrentWS = Worksheets(OwnerName.Value)
        Set OppIDField = CurrentWS.Range("C1", Range("C1").End(xlDown))
        
        IDCount = WorksheetFunction.CountIf(OppIDField, OppID)
        
        If IDCount > 0 Then
            
            Set Existing = OppIDField.Find(OppID)
            Debug.Print Existing.Address
        
            
            OwnerName.Offset(0, -5).Copy Destination:=Worksheets(OwnerName.Value).Range(Existing.Address).End(xlRight).Offset(0, 1)

按原样运行代码会在“复制”部分出现运行时错误。

如果我将“xlRight”更改为“xlUp”,它会将正确的数据复制到错误的位置,但它至少不会遇到运行时错误并会完成宏。

偏移量是将其放入上一个有数据的单元格的下一个单元格中。 xlRight 会导致 xlUp 不会导致的错误是否有原因?

excel vba
1个回答
0
投票

如果变量

Existing
引用该行中最后使用的单元格,则 End(xlRight) 将到达该行中的最后一列。使用 Offset(0, 1) 会超出图纸限制,从而导致运行时错误。

请尝试:

With Worksheets(OwnerName.Value)
    OwnerName.Offset(0, -5).Copy Destination:=.Cells(Existing.Row, .Columns.Count).End(xlLeft).Offset(0, 1)
End With
© www.soinside.com 2019 - 2024. All rights reserved.