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

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

Frage von drimrim zum Thema VB for Applications ...

Microsoft Office
Unterordner durchsuchen Excel VBA (1)

Frage von schwalbepilot zum Thema Microsoft Office ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(2)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
Windows 7
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

LAN, WAN, Wireless
gelöst Statische Routen mit ISC-DHCP Server für Android Devices (22)

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

Exchange Server
gelöst Migration Exchange 2007 zu 2013 - Public Folder teilweise weg (16)

Frage von Andy1987 zum Thema Exchange Server ...