>> Ich hab alle Daten unterneider in neiner exel Tabelle gespeichert, wie schreibe ich den den code um so dass das magro alle automatiesiert umschreibt?
Du kannst damit anfangen die Referenzierung auf die erste zu betrachtende Zelle - siehe markierte Zeile weiter unten - als Prozedur/Funktions Parameter festzulegen (VBA-Tutorial).
Dann kannst du das für beliebig viele Zellen der Reihe nach aufrufen, á la:
Call BlaBlubb_ich_fixe_was_ich_im_Scraper_verbockt_habe(Worksheets("Tabelle1").Range("A1"))
Call BlaBlubb_ich_fixe_was_ich_im_Scraper_verbockt_habe(Worksheets("Tabelle1").Range("A4"))
Call BlaBlubb_ich_fixe_was_ich_im_Scraper_verbockt_habe(Worksheets("Tabelle1").Range("A7"))
'...
Anstatt jetzt - wie gerade gezeigt - den gleichen Aufruf unzählige male mit unterschiedlichen Range's aufzurufen, bietet es sich dann an, eine Schleife (VBA-Tutorial) zu verwenden, über die man die Zeilen (1,4,7,...) der Referenz abbildet und aufruft. So hat man dann nur noch einen Aufruf mit sich ändernden Zeilen-Index pro Schleifen-Iteration dastehen. Das ist deine Hausaufgabe!
'benötigt Verweis auf "Microsoft VBScript Regular Expressions 5.5"
Option Explicit
Sub BlaBlubb_ich_fixe_was_ich_im_Scraper_verbockt_habe()
Dim RegExp As VBScript_RegExp_55.RegExp
Dim Matches As VBScript_RegExp_55.MatchCollection
Dim Expr As String
With New RegExp
.Global = False
.IgnoreCase = True
.MultiLine = False
With Worksheets("Tabelle1").Range("A1")
Expr = .Offset(0, 0).Value & .Offset(1, 0).Value & .Offset(2, 0).Value
End With
.Pattern = """<img(.*?)>.*?</img>""(,\d+)"
Set Matches = .Execute(Expr)
'...
End Sub
|