Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
应用公式,然后自动填充数据,直到列中的最后一个可见单元格:VBA_Vba_Excel - Fatal编程技术网

应用公式,然后自动填充数据,直到列中的最后一个可见单元格: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当然,你也不知道;在采购订单代码中,他正在设置ia
AutoFilter
和其他设置,可能是不同的工作表。我试图对PO提供的部分和信息给出最佳答案。(也许他把
Lastrow
定义为Double,我怎么能猜出他没有提供的所有信息?)