应用公式,然后自动填充数据,直到列中的最后一个可见单元格:VBA
我使用此代码应用一个长度公式,然后应用公式,然后自动填充数据,直到列中的最后一个可见单元格:VBA,vba,excel,Vba,Excel,我使用此代码应用一个长度公式,然后自动填充,直到最后一个可见单元格出现错误 运行时错误“1004”-对象\u Global的方法“范围”失败 代码 Range("C2").Select ActiveCell.FormulaR1C1 = "=LEN(RC[-1])" Selection.AutoFill Destination:=Range("C2:C" & Lastrow).SpecialCells(xlCellTypeVisible).Select Selection.Copy 一如
自动填充
,直到最后一个可见单元格出现错误
运行时错误“1004”-对象\u Global的方法“范围”失败
代码
Range("C2").Select
ActiveCell.FormulaR1C1 = "=LEN(RC[-1])"
Selection.AutoFill Destination:=Range("C2:C" & Lastrow).SpecialCells(xlCellTypeVisible).Select
Selection.Copy
一如既往,最好远离
Select
、ActiveCell
和Selection
请尝试以下代码:
Dim FitRng As Range, Lastrow As Long
Range("C2").FormulaR1C1 = "=LEN(RC[-1])"
Set FitRng = Range("C2:C" & Lastrow).SpecialCells(xlCellTypeVisible)
FitRng.FillDown
如果不想使用FillDown
方法,只需使用:
FitRng.FormulaR1C1 = "=LEN(RC[-1])"
从你的代码看来,你想要的是B列单元格的长度。下面的代码适合我
Sub x()
Range("C2:C" & Range("B" & Rows.Count).End(xlUp).Row).SpecialCells(xlCellTypeVisible).FormulaR1C1 = "=LEN(RC[-1])"
End Sub
如果你不是真的在寻找特殊的单元格,你可以使用一个像
Range(“C2:C”和Range(“B”和Rows.Count).End(xlUp.Row).FormulaR1C1=“=LEN(RC[-1])”
您是否也需要定义Lastrow
?@nightcrawler23我只更正了采购订单共享的部分我运行了原始代码,它给出错误只是因为变量未定义,这意味着这是原始问题。优化代码不是关键issue@nightcrawler23当然,你也不知道;在采购订单代码中,他正在设置iaAutoFilter
和其他设置,可能是不同的工作表。我试图对PO提供的部分和信息给出最佳答案。(也许他把Lastrow
定义为Double,我怎么能猜出他没有提供的所有信息?)