我正在尝试在宏中运行以下脚本,它一直给我这个错误“范围类的自动填充方法失败”。有什么建议吗?
Dim WS_Count As Integer
Dim I As Integer
WS_Count = ActiveWorkbook.Worksheets.Count
For I = 9 To WS_Count
Sheets(I).Select
Selection.AutoFill Destination:=Range("C19:C114"), Type:=xlFillDefault
Range("C19:C114").Select
Next I
答案 0 :(得分:1)
请确保您的工作表名称与Sheet(I)
完全一致。它显示我是一个公正的数字。那么您的工作表名称是数字吗?
Dim WS_Count As Integer
Dim I As Integer
WS_Count = ActiveWorkbook.Worksheets.Count
For I = 9 To WS_Count
Sheets(I).Select
Range("C19:C20").Select
Selection.AutoFill Destination:=Range("C19:C114"), Type:=xlFillDefault
Range("C19:C114").Select
Next I
答案 1 :(得分:1)
你可以试试这个不需要选择任何东西。它还消除了屏幕闪烁并且速度更快。
Sub AutoFillC()
Dim WS_Count As Integer
Dim I As Integer
Application.ScreenUpdating = False
WS_Count = ActiveWorkbook.Worksheets.Count
For I = 9 To WS_Count
Sheets(I).Range("C19:C20").AutoFill _
Destination:=Range("C19:C114"), Type:=xlFillDefault
' Range("C19:C114").Select **There is rarely need to _
use the .Select method!
Next I
Application.ScreenUpdating = True
End Sub
@ harun24hr很少需要在工作表上选择任何范围。对于像OP这样的简单命令,请指定要应用于它的范围和方法。如果要对Range执行多个方法,请使用这样的结构。注意句号“。”在每个方法之前
With Range
'.Method
'.Method1
End With
选择范围会降低代码速度,尤其是在未禁用ScreenUpdating的情况下。