Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 3200 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 ..
Ähnliche Inhalte
Microsoft Office
gelöst Excel VBA Datein auslesen (8)

Frage von schwalbepilot zum Thema Microsoft Office ...

Microsoft Office
EXCEL VBA Termindaten aus Tabelle Filtern

Frage von t3jxbus zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel 2010 mit VBA sortieren ? (4)

Frage von dressa zum Thema Microsoft Office ...

Microsoft Office
gelöst VBA zum auslesen von einem Zellbereich Excel (1)

Frage von schwalbepilot zum Thema Microsoft Office ...

Neue Wissensbeiträge
Windows Update

Offenbar erneutes MS-Update mit Fehlerschleife (2012 R2)

Information von VGem-e zum Thema Windows Update ...

Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(14)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Datenschutz

Gefährdeter Datenschutz: Firefox löscht lokale Datenbanken nicht

(1)

Information von BassFishFox zum Thema Datenschutz ...

Heiß diskutierte Inhalte
Utilities
CCleaner 5.33 mit Malware infiziert (27)

Information von SeaStorm zum Thema Utilities ...

Windows Systemdateien
Windows bootet nicht mehr Fehlermeldung 0xc0000098 (19)

Frage von franzgoerlich zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
gelöst 802.1X-Authentifizierung (17)

Frage von Alex29 zum Thema LAN, WAN, Wireless ...

Exchange Server
gelöst Proxy Server Settings Cloud + EWS (15)

Frage von SomebodyToLove zum Thema Exchange Server ...