2015-12-15 25 views
2

在某張紙上執行自動填充操作時,我的代碼正常工作。除了當我還想在另一個填充上執行相同的操作時,我得到一個「錯誤400」,我找不出原因。應用代碼兩次時自動填充「錯誤400」

這工作得很好:

Sheets(2).Range(Cells(9, 1), Cells(9, 4 + Sheets(3).UsedRange.Columns.Count)).AutoFill Destination:=Range(Cells(9, 1), Cells(7 + Sheets(3).UsedRange.Rows.Count, 4 + Sheets(3).UsedRange.Columns.Count)), Type:=xlFillDefault 

但是,這給出了一個錯誤:

Sheets(7).Range(Cells(2, 1), Cells(2, 4 + Sheets(3).UsedRange.Columns.Count)).AutoFill Destination:=Range(Cells(2, 1), Cells(7 + Sheets(3).UsedRange.Rows.Count, 4 + Sheets(3).UsedRange.Columns.Count)), Type:=xlFillDefault 

Sheets(2).Range(Cells(9, 1), Cells(9, 4 + Sheets(3).UsedRange.Columns.Count)).AutoFill Destination:=Range(Cells(9, 1), Cells(7 + Sheets(3).UsedRange.Rows.Count, 4 + Sheets(3).UsedRange.Columns.Count)), Type:=xlFillDefault 

解決方案

Sheets(7).Range(Sheets(7).Cells(2, 1), Sheets(7).Cells(2, 4 + Sheets(3).UsedRange.Columns.Count)).AutoFill Destination:=Sheets(7).Range(Sheets(7).Cells(2, 1), Sheets(7).Cells(7 + Sheets(3).UsedRange.Rows.Count, 4 + Sheets(3).UsedRange.Columns.Count)), Type:=xlFillDefault 

Sheets(2).Range(Sheets(2).Cells(9, 1), Sheets(2).Cells(9, 4 + Sheets(3).UsedRange.Columns.Count)).AutoFill Destination:=Sheets(2).Range(Sheets(2).Cells(9, 1), Sheets(2).Cells(7 + Sheets(3).UsedRange.Rows.Count, 4 + Sheets(3).UsedRange.Columns.Count)), Type:=xlFillDefault 
+1

請嘗試指定每個範圍或單元格對象所引用的表格。如果沒有使用它將使用ActiveSheet。 – Alex4336

+0

謝謝,應該親眼看到它... –

回答

1

這可能是一個更好的解決方案。

dim ws3 as worksheet 
set ws3 = Worksheets(3) 

with Worksheets(7) 
    .Range(.Cells(2, 1), .Cells(2, 4 + ws3.UsedRange.Columns.Count)).AutoFill _ 
     Destination:=.Range(.Cells(2, 1), .Cells(7 + ws3.UsedRange.Rows.Count, 4 + ws3.UsedRange.Columns.Count)), Type:=xlFillDefault 
end with 

with Worksheets(2) 
    .Range(.Cells(9, 1), .Cells(9, 4 + ws3.UsedRange.Columns.Count)).AutoFill _ 
     Destination:=.Range(.Cells(9, 1), .Cells(7 + ws3.UsedRange.Rows.Count, 4 + Sheets(3).UsedRange.Columns.Count)), Type:=xlFillDefault 
end with 

set ws3 = Nothing 

With ... End With statement eaasily通過簡單地用一個週期(又名.句號)的作序或.Range分配.Cells工作表血統任何Range objectRange.Cells property