Excel VBA,尝试复制上一列时发生溢出错误

Excel VBA,尝试复制上一列时发生溢出错误,excel,vba,Excel,Vba,我有一段代码,我试图根据工作表(“输入”)中的字符串复制上一列。范围(“A2”),然后单元格中的输入是Y1M7 然而,我得到了溢出错误。有人能帮忙吗 Sub NewFind() Dim nameColumn As Long With Sheets("Load check data") nameColumn = .Rows(1).Find(Sheets("Input").Range("A2"), .Cells(.C

我有一段代码,我试图根据
工作表(“输入”)中的字符串复制上一列。范围(“A2”)
,然后单元格中的输入是
Y1M7

然而,我得到了
溢出
错误。有人能帮忙吗

Sub NewFind()

Dim nameColumn As Long

With Sheets("Load check data")

    
    nameColumn = .Rows(1).Find(Sheets("Input").Range("A2"), .Cells(.Cells.Count), xlValues, xlWhole).Column

    .Range(.Cells(2, nameColumn - 1), .Cells(k, nameColumn - 1)).Copy

End With


End Sub

在范围上使用
Find
时(
.Rows(1)
,在这种情况下),为
之后指定的范围必须在
Find
正在搜索的范围内。您的代码试图在工作表上指定右下角的单元格,该单元格显然不在第1行中。将
.Cells(.Cells.Count)
替换为
.Rows(1).Cells(.Rows(1).Cells.Count)
其他点:1)在尝试获取范围变量的列之前,应将查找结果分配给范围变量,并对其进行测试。2) 如果您实际尝试获取右下角的单元格,则需要
.Cells(.Cells.CountLarge)
,因为
.Cells.Count
对于整个工作表溢出了一段时间,您会得到溢出错误,因为
.Cells.Count
返回的值大于
Long
数据类型的限制。长数据类型最大值为
2147483647
,但工作表中有
17179869184
单元格。如果需要返回该值,请使用
单元格。CountLarge