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, 2609 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
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
Excel VBA XML-Nodes auslesen (4)

Frage von chef1568 zum Thema VB for Applications ...

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 ...

VB for Applications
Excel VBA Sortierung von Daten (5)

Frage von easy4breezy zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...