2016-02-13 84 views
0

我試圖在VBA上做這個自動填充範圍,但我不知道什麼是錯誤的,或者即使它工作。 它應該基於每列的第一個和第二個單元格填充所有範圍A1到Z20。 如果其他人能做到這一點或有什麼不對,請修復它。製作一個自動填充範圍

Sub test() 

Dim i As Range 
Dim a As Long 

Do While Not Range("Z20").Value > 0 
If a = 0 Then 
a = 1 
Else 
End If 

For Each i In Range("A:Z") 
a = a + 1 
i = Range(Cells(1, a), Cells(20, a)) 
Cells(1, a).Value = 1 
Cells(2, a).Value = 2 

Set SourceRange = Range(Cells(1, a), Cells(2, a)) 
Set fillRange = Range(i).Columns(a) 
SourceRange.AutoFill Destination:=fillRange 
Next 
Loop 
End Sub 

回答

0
Option Explicit 
Sub test() 

Dim c As Range 
Dim a As Long 
Dim sourceRange As Range 

a = 1 
Do While a <> 20 
ActiveSheet.Cells(1, a) = 1 
ActiveSheet.Cells(2, a) = 2 
Set c = ActiveSheet.Range(Cells(1, a), Cells(20, a)) 

Set sourceRange = ActiveSheet.Range(Cells(1, a), Cells(2, a)) 

sourceRange.AutoFill Destination:=c 

a = a + 1 

Loop 
End Sub 
+0

它的工作!謝謝! – h1k3r

+0

沒問題。在代碼頂部添加「Option Explicit」將有助於查找問題。 – DuctTapeCoder