2016-02-13 78 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