Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Excel VBA HTML-Tabelle auslesen

Frage Entwicklung VB for Applications

Mitglied: chef1568

chef1568 (Level 1) - Jetzt verbinden

08.09.2014, aktualisiert 14:35 Uhr, 2727 Aufrufe, 2 Kommentare

Hallo,
ich möchte eine in einer Email eingebundenen HTML-Tabelle auslesen und in einen Array speichern.
Hierzu habe ich bereits den gesamten Inhalt der Email als string in einer Variable gespeichert.
Nun habe ich aber das Problem die Tabelle und die Informationen daraus herauszufiltern.

Ich benötige die Inhalte der Zellen eigentlich 1:1 in einem Array - bei XML ging das leichter.

01.
  
02.
<table width="1965" style="width:1179pt;margin-left:1.9pt;"> 
03.
	<col width="116" style="width:69.8pt;"><col width="805" style="width:483.1pt;"><col width="123" style="width:73.8pt;"><col width="143" style="width:86.1pt;"><col width="131" style="width:78.8pt;"><col width="129" style="width:77.8pt;"><col width="39" style="width:23.8pt;"><col width="476" style="width:285.8pt;"> 
04.
	<tbody> 
05.
	<tr height="25" style="height:15pt;"> 
06.
		<td><font face="Calibri" size="2"><span style="font-size:11pt;">Stand</span></font></td> 
07.
		<td><font face="Calibri" size="2"><span style="font-size:11pt;">28.08.14</span></font></td> 
08.
		<td><font face="Calibri" size="2"><span style="font-size:11pt;"></span></font></td> 
09.
		<td><font face="Calibri" size="2"><span style="font-size:11pt;"></span></font></td> 
10.
		<td><font face="Calibri" size="2"><span style="font-size:11pt;"></span></font></td> 
11.
		<td><font face="Calibri" size="2"><span style="font-size:11pt;"></span></font></td> 
12.
		<td><font face="Calibri" size="2"><span style="font-size:11pt;"></span></font></td> 
13.
		<td><font face="Calibri" size="2"><span style="font-size:11pt;"></span></font></td> 
14.
	</tr> 
15.
	<tr height="25" style="height:15pt;"> 
16.
		<td style="background-color:#BFBFBF;"><font face="Calibri" size="2"><span style="font-size:11pt;background-color:#BFBFBF;">Fahrzeug</span></font></td> 
17.
		<td style="background-color:#BFBFBF;"><font face="Calibri" size="2"><span style="font-size:11pt;background-color:#BFBFBF;">Kommentar</span></font></td> 
18.
		<td style="background-color:#BFBFBF;"><font face="Calibri" size="2"><span style="font-size:11pt;background-color:#BFBFBF;">Typ</span></font></td> 
19.
		<td style="background-color:#BFBFBF;"><font face="Calibri" size="2"><span style="font-size:11pt;background-color:#BFBFBF;">Verantwortlich</span></font></td> 
20.
		<td style="background-color:#BFBFBF;"><font face="Calibri" size="2"><span style="font-size:11pt;background-color:#BFBFBF;">Status</span></font></td> 
21.
		<td style="background-color:#BFBFBF;"><font face="Calibri" size="2"><span style="font-size:11pt;background-color:#BFBFBF;">Zieltermin</span></font></td> 
22.
		<td style="background-color:#BFBFBF;"><font face="Calibri" size="2"><span style="font-size:11pt;background-color:#BFBFBF;">ID</span></font></td> 
23.
		<td style="background-color:#BFBFBF;"><font face="Calibri" size="2"><span style="font-size:11pt;background-color:#BFBFBF;">Anmerkung</span></font></td> 
24.
	</tr> 
25.
	<tr height="25" style="height:15pt;"> 
26.
		<td><font face="Calibri" size="2"><span style="font-size:11pt;">Testauto1</span></font></td> 
27.
		<td><font face="Calibri" size="2" color="red"><span style="font-size:11pt;">Kabel reparieren</span></font></td> 
28.
		<td><font face="Calibri" size="2"><span style="font-size:11pt;">Maßnahme</span></font></td> 
29.
		<td><font face="Calibri" size="2"><span style="font-size:11pt;">Mustermann</span></font></td> 
30.
		<td><font face="Calibri" size="2"><span style="font-size:11pt;">offen</span></font></td> 
31.
		<td><font face="Calibri" size="2"><span style="font-size:11pt;">19.09.14</span></font></td> 
32.
		<td><font face="Calibri" size="2"><span style="font-size:11pt;">80</span></font></td> 
33.
		<td><font face="Calibri" size="2"><span style="font-size:11pt;">&nbsp;</span></font></td> 
34.
	</tr> 
35.
	<tr height="25" style="height:15pt;"> 
36.
		<td><font face="Calibri" size="2"><span style="font-size:11pt;">Testauto2</span></font></td> 
37.
		<td><font face="Calibri" size="2" color="red"><span style="font-size:11pt;">Kabel reparieren</span></font></td> 
38.
		<td><font face="Calibri" size="2"><span style="font-size:11pt;">Maßnahme</span></font></td> 
39.
		<td><font face="Calibri" size="2"><span style="font-size:11pt;">Mustermann</span></font></td> 
40.
		<td><font face="Calibri" size="2"><span style="font-size:11pt;">offen</span></font></td> 
41.
		<td><font face="Calibri" size="2"><span style="font-size:11pt;">19.09.14</span></font></td> 
42.
		<td><font face="Calibri" size="2"><span style="font-size:11pt;">81</span></font></td> 
43.
		<td><font face="Calibri" size="2"><span style="font-size:11pt;">&nbsp;</span></font></td> 
44.
	</tr> 
45.
</tbody> 
46.
</table>
Könnt ihr mir hierbei etwas auf die Sprünge helfen?
Das Ergebnis sollte wie folgt aussehen:
01.
  
02.
arr(0, 0) = Fahrzeug 
03.
arr(0, 1) = Kommentar 
04.
arr(0, 2) = Typ 
05.
arr(0, 3) = Verantwortlich 
06.
arr(0, 4) = Status 
07.
arr(0, 5) = Zieltermin 
08.
arr(0, 6) = ID 
09.
arr(0, 7) = Anmerkung 
10.
 
11.
arr(1, 0) = Testauto1 
12.
arr(1, 1) = Kabel reparieren 
13.
arr(1, 2) = Maßnahme 
14.
arr(1, 3) = Mustermann 
15.
arr(1, 4) = offen 
16.
arr(1, 5) = 19.09.14 
17.
arr(1, 6) = 80 
18.
arr(1, 7) = "" 
19.
 
20.
arr(2, 0) = Testauto2 
21.
arr(2, 1) = Kabel reparieren 
22.
arr(2, 2) = Maßnahme 
23.
arr(2, 3) = Mustermann 
24.
arr(2, 4) = offen 
25.
arr(2, 5) = 19.09.14 
26.
arr(2, 6) = 81 
27.
arr(2, 7) = ""
danke Feder
Mitglied: colinardo
LÖSUNG 08.09.2014, aktualisiert um 14:40 Uhr
Hallo Feder,
in diesem Beispiel ist dein HTML-Schnippsel in der Variablen strContent hinterlegt. Die erste Zeile der Tabelle wird wie gewünscht nicht mit ins Array übernommen
01.
Dim oDom As Object, arr as Variant 
02.
Set oDom = CreateObject("htmlfile") 
03.
oDom.body.innerHTML = strContent 
04.
     
05.
With oDom.getElementsByTagName("table")(0) 
06.
   ReDim arr(0 To .Rows.Length - 2, 0 To .Rows(1).Cells.Length - 1) 
07.
   For r = 1 To .Rows.Length - 1 
08.
       For c = 0 To .Rows(r).Cells.Length - 1 
09.
            arr(r - 1, c) = .Rows(r).Cells(c).innerText 
10.
       Next 
11.
   Next 
12.
End With
In arr befinden sich dann deine gewünschten Daten.

Grüße Uwe

Zur Info: So läuft das nur in VBA für VBS müsste man es so abändern.
VBS-Variante
01.
Dim oDom, arr 
02.
Set oDom = CreateObject("htmlfile") 
03.
oDom.write strContent 
04.
oDom.Close 
05.
 
06.
With oDom.getElementsByTagName("table")(0) 
07.
   ReDim arr(0 To .Rows.Length - 2, 0 To .Rows(1).Cells.Length - 1) 
08.
   For r = 1 To .Rows.Length - 1 
09.
       For c = 0 To .Rows(r).Cells.Length - 1 
10.
            arr(r - 1, c) = .Rows(r).Cells(c).innerText 
11.
       Next 
12.
   Next 
13.
End With
Bitte warten ..
Mitglied: chef1568
08.09.2014 um 14:36 Uhr
Hallo Uwe,

genau das ist das was mir weiterhilft! Vielen Dank!

gruß feder
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Microsoft Office
EXCEL VBA Termindaten aus Tabelle Filtern

Frage von t3jxbus zum Thema Microsoft Office ...

VB for Applications
gelöst Excel VBA .csv Import in Tabelle x, ab Spalte y

Frage von drimrim zum Thema VB for Applications ...

Entwicklung
gelöst Array in HTML-Tabelle umwandeln mittels AutoIT (5)

Frage von drnatur zum Thema Entwicklung ...

HTML
gelöst Zelle aus Excel in HTML-Datei einer E-Mail darstellen (3)

Frage von Sil3nz3r zum Thema HTML ...

Heiß diskutierte Inhalte
Hardware
Laptop ins Salzwasser gefallen (18)

Frage von Marcel94 zum Thema Hardware ...

Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (13)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

Hardware
Lenovo Yoga 500 über angeschlossene USB Tastatur booten (13)

Frage von thomasreischer zum Thema Hardware ...

CPU, RAM, Mainboards
Hardware Fragen (12)

Frage von xaver-2 zum Thema CPU, RAM, Mainboards ...