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