2014-09-26 110 views
0

我新的vba excel宏。通常在Excel中,我將雙擊單元格,然後數據將自動生成,直到最後一行。但在vba如何使它?以下是我的代碼。目前即時選擇BF2進行查找。在我看到vlookup的價值之後。我想填充數據直到最後一行。通常以excel的方式,我只需雙擊單元格,然後它將填充。那麼我們如何做vba宏呢?建議請。excel宏vba - 填充數據的代碼是什麼?

Set myValues = Application.InputBox("Please select on the CON2:", 
Default:=Range("BE2").Address(0, 0), Type:=8) 
Set myResults = Application.InputBox("Please select previous CON2 to VLOOKUP:", Type:=8) 

On Error Resume Next 

Set myValues = myValues.Offset 
FirstRow = myValues.Row 
FinalRow = Cells(65536, myResults.Column).End(xlUp).Row 

Range("BF2").Formula = _ 
"=VLOOKUP(" & Cells(FirstRow, myValues.Column).Address(False, False) & ", " & _ 
" " & myResults.Address(External:=True) & " , 1, 0)" 
+0

你能舉個例子說明你的意思嗎?你的問題不是很清楚。 – 2014-09-26 06:46:26

+0

我不能在這裏粘貼圖片,因爲我是一個新用戶。 – 2014-09-26 06:56:46

+0

沒問題,我們在下面給出答案;) – 2014-09-26 06:57:22

回答

0

我認爲這是你想要的。

Sub AutoFill() 
    Dim sRng As Range, fRng As Range 

    FirstRow = myValues.Row 
    FinalRow = Cells(65536, myResults.Column).End(xlUp).Row 

    Range("BF2").Formula = _ 
    "=VLOOKUP(" & Cells(FirstRow, myValues.Column).Address(False, False) & ", " & _ 
    " " & myResults.Address(External:=True) & " , 1, 0)" 

    Set sRng = Worksheets("Sheet1").Range("BF2") 
    Set fRng = Worksheets("Sheet1").Range("BF2:B" & FinalRow) 

    sRng.AutoFill Destination:=fRng 
End Sub 
+1

非常感謝你。它現在有效。欣賞它。謝謝 – 2014-09-26 07:44:29

+0

不客氣;) – 2014-09-26 07:47:41

+0

1件事。我如何在A和B之間添加列? :)用代碼 – 2014-09-26 07:49:17

1

在VBA中,你會做這樣的事情:

Sub AutoFill() 
    Dim sRng As Range, fRng As Range 

    Set sRng = Worksheets("Sheet1").Range("B2")  '<~~ Range to AutoFill from 
    Set fRng = Worksheets("Sheet1").Range("B2:B10") '<~~ Range to AutoFill 

    sRng.AutoFill Destination:=fRng 
End Sub 

此代碼將AutoFill基於細胞B2的含量範圍B2:B10