2014-01-29 62 views
0

我有宏進一步訪問和API。我在列A中有地址,在列B中有地址。如果我選​​擇C1並激活宏,它將查找地址+郵政編碼並返回結果。但是,我希望它能夠爲後續行自動執行此操作。因此,在A1中查找A1和B1後,我希望它查找A2和B2,並在C2中給出結果等等等等,只要我想要...在VBA中循環一個宏

我該如何做到這一點?

宏:

Sub APIExecute() 
' 
' APIExecute Macro 
' 
' Keyboard Shortcut: Ctrl+Shift+Q 
' 
    Dim connectionString As String, quertable As QueryTable 
    connectionString = "URL;https://www.conzoom.eu/Webservices/GetMosaic.aspx?address=" & _ 
    ThisWorkbook.Sheets("Input").Range("A1") & "&postcode=" & ThisWorkbook.Sheets("Input").Range("B1") 


    Set quertable = ActiveSheet.QueryTables.Add(Connection:=connectionString, Destination:=ActiveCell) 
    With quertable 
     .FieldNames = False 
     .RowNumbers = False 
     .RefreshOnFileOpen = False 
     .RefreshStyle = xlOverwriteCells 
     .SavePassword = False 
     .SaveData = False 
     .BackgroundQuery = False 
     .AdjustColumnWidth = False 
     .RefreshPeriod = 0 
     .WebSelectionType = xlEntirePage 
     .WebFormatting = xlWebFormattingNone 
     .WebConsecutiveDelimitersAsOne = True 
     .WebSingleBlockTextImport = False 
     .WebDisableDateRecognition = False 
     .WebDisableRedirections = False 
     .MaintainConnection = False 
     .WebPreFormattedTextToColumns = True 
     .Refresh 
    End With 

End Sub 

回答

0

簡單的方法是使用一個For-Next循環。

首先將For i=1 to x添加到您的子開頭,其中x是您需要的行數。然後,將Range("A1")更改爲Range("A" & i),對於B1更改相同。

最後,通過改變Destination:=ActiveCell選擇C範圍Destination:=Range("C" & i)後堅持自己Next iEnd With

+0

另外,如果你只需要添加的所有行,並沒有值要指定一個號碼(X)你可以檢查你的範圍的最後一行,並使用該數字,而不是 – bmgh1985

+0

我添加了這些東西,但我得到的錯誤:「變量未定義」爲我在「For i = 1 To X」 任何想法? – user3243967

+0

您是否爲x設置了一個值,或者使用了行計數來獲取值? – bmgh1985