Gentage en web-forespørgsel med parametre via makro/VBA?
Jeg vil hente noget statistik, der ligger ensartet på >2000 sider. Det ligger på sogn.dk, og kirkeministeriet har henvist mig til at hente det fra siden, hvis jeg vil have det. Det prøver jeg så på.Jeg har fået noget hjemmestrikket til at virke ved hjælp af makroer, men jeg tror, at lidt vba-programmering måske kan gøre det rigtigt smart.
Adressen på siderne ser sådan ud:
http://www.sogn.dk/radsted/index.php?mod=sognside&func=sogneInfo&p1=7392
(firecifret kode afgør, hvilken sogneside, der vises)
Jeg starter i mit regneark (Excel 2003) med at oprette en webforespørgel på ovennævnte link. Webforespørgslen gemmes på pc'en, og i notepad ændrer jeg den firecifrede kode til []
I Excel 2003 har jeg i ark 1 i kolonne A en liste med alle de firecifrede koder.
I Ark 2 har jeg lavet en simpel makro (indsat nedenfor), der:
a) åbner den gemte webforespørgsel
(her dukker "Indtast parameterværdi"-boksen op. Jeg har kopieret en henvisning til celle A1 i Ark1 til klippebordet, så jeg trykker ctrl + v og der bliver indsat =Ark1!$a$1 i boksen. Jeg trykker enter)
b) makroen går til Ark1 og sletter indholdet i celle A1, så hele striben af numre rykker et hak op.
c) makroen går tilbage til ark 2 og flytter cursoren et tilpas antal celler ned, og den afsluttes nu.
Altså: Jeg kan med tastekombinationen ctrl+b (genvej til makroen), ctrl+v og enter nu hente statistik ind fra én side af gangen ind til min pc.
Det kan jeg godt gøre mange gange, men det må kunne lade sig gøre at skrive en løkke eller lignende ind i min makro, så den bare kører rutinen om og om igen. Jeg har eksperimenteret meget, men kan ikke hitte ud af det.
Har nogen en smartere løsning, der kan genbruges i andre situationer, der minder, er forslag også velkomne.
Og her er makroen.
' Genvejstast:Ctrl+b
'
With ActiveSheet.QueryTables.Add(Connection:= _
"FINDER;C:\Documents and Settings\dicaar.STK\Skrivebord\sogn\sogndk.iqy", _
Destination:=ActiveCell)
.Name = "sogndk"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "10"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Sheets("Ark1").Select
Selection.Delete Shift:=xlUp
Sheets("Ark2").Select
ActiveCell.Offset(19, 0).Range("A1").Select
End Sub
