Total Newbie zu VBA - versucht, eine HTML-Tabelle mit Daten aus einer Excel-Tabelle automatisch zu erstellen.Erstellen Sie HTML-Tabellen mit Excel VBA
Ich habe Daten in Spalten I-M aus Zeilen 2 nach unten. Dies kann zwischen 1 Zeile und 500 Zeilen liegen.
Ich habe dann auch noch ein Stück Daten in P17-26, das statisch ist, aber offensichtlich Werte ändern.
hatte ich einen Blick auf Antworten zu diesem Thema: Dynamically create HTML table rows with VBA
Sub CreateAlternatorHtml()
Dim wb As Workbook
Dim ws As Worksheet
Dim coll As New Collection
Dim lngCounter As Long
Dim strBeforeRows As String
Dim strApplication As String
Dim strBetweenRows As String
Dim strSpecs As String
Dim strAfterRows As String
Dim strAll As String
' get a worksheet reference
Set wb = ActiveWorkbook
Set ws = Sheets("Copy From Here")
' test collection
coll.Add 3
' HTML before rows
strBeforeRows = "<style type=""text/css""> table.tableizer-table { border: 1px solid #CCC; font-family: Arial, Helvetica, sans-serif font-size: 12px;} .tableizer-table td { padding: 4px; margin: 3px; border: 1px solid #ccc;}.tableizer-table th { background-color: #104E8B; color: #FFF; font-weight: bold;}</style>" & _
"<table width=""100%"" class=""tableizer-table"">" & _
"<tr class=""tablezer-firstrow"">" & _
"<th><p>Make</p></th>" & _
"<th>Model</th>" & _
"<th>Series</th>" & _
"<th>Engine</th>" & _
"<th>Years (mm/yy)</th></tr>"
' iterate collection
strApplication = ""
For lngCounter = 1 To coll.Count
strApplication = strApplication & "<tr>"
strApplication = strApplication & "<td><div align=""center"">" & ws.Range("I" & coll(lngCounter)).Value & "</div></td>"
strApplication = strApplication & "<td><div align=""center"">" & ws.Range("J" & coll(lngCounter)).Value & "</div></td>"
strApplication = strApplication & "<td><div align=""center"">" & ws.Range("K" & coll(lngCounter)).Value & "</div></td>"
strApplication = strApplication & "<td><div align=""center"">" & ws.Range("L" & coll(lngCounter)).Value & "</div></td>"
strApplication = strApplication & "<td><div align=""center"">" & ws.Range("M" & coll(lngCounter)).Value & "</div></td>"
strApplication = strApplication & "</tr>"
Next lngCounter
' HTML between rows
strBetweenRows = "<tr>" & _
"<td> </td>" & _
"<td> </td>" & _
"<td> </td>" & _
"<td> </td>" & _
"<td> </td>" & _
"</tr>" & _
"<tr>" & _
"<th colspan=""2"" class=""tableizer-firstrow"">Specifications</th>" & _
"<td> </td>" & _
"<td> </td>" & _
"<td> </td></tr> <tr>"
' Specs HTML
strSpecs = ""
strSpecs = strSpecs & "<tr><td>Volts</td><td align=""right"" width=""120""><div align=""center"">" & ws.Range("P17").Value & "</div></td><td> </td><td> </td><td> </td></tr><tr>"
strSpecs = strSpecs & "<tr><td>Amps</td><td align=""right"" width=""120""><div align=""center"">" & ws.Range("P18").Value & "</div></td><td> </td><td> </td><td> </td></tr><tr>"
strSpecs = strSpecs & "<tr><td>Adjustment Hole (mm)</td><td align=""right"" width=""120""><div align=""center"">" & ws.Range("P19").Value & "</div></td><td> </td><td> </td><td> </td></tr><tr>"
strSpecs = strSpecs & "<tr><td>Pivot Hole (mm)<</td><td align=""right"" width=""120""><div align=""center"">" & ws.Range("P20").Value & "</div></td><td> </td><td> </td><td> </td></tr><tr>"
strSpecs = strSpecs & "<tr><td>Adjustment to Pivot (mm)</td><td align=""right"" width=""120""><div align=""center"">" & ws.Range("P20").Value & "</div></td><td> </td><td> </td><td> </td></tr><tr>"
strSpecs = strSpecs & "<tr><td>Pivot Length (mm)</td><td align=""right"" width=""120""><div align=""center"">" & ws.Range("P22").Value & "</div></td><td> </td><td> </td><td> </td></tr><tr>"
strSpecs = strSpecs & "<tr><td>Inside Feet To Feet (mm)</td><td align=""right"" width=""120""><div align=""center"">" & ws.Range("P23").Value & "</div></td><td> </td><td> </td><td> </td></tr><tr>"
strSpecs = strSpecs & "<tr><td>Pulley (mm)</td><td align=""right"" width=""120""><div align=""center"">" & ws.Range("P24").Value & "</div></td><td> </td><td> </td><td> </td></tr><tr>"
strSpecs = strSpecs & "<tr><td>No Of Grooves</td><td align=""right"" width=""120""><div align=""center"">" & ws.Range("P25").Value & "</div></td><td> </td><td> </td><td> </td></tr><tr>"
strSpecs = strSpecs & "<tr><td>Plug</td><td align=""right"" width=""120""><div align=""center"">" & ws.Range("P26").Value & "</div></td><td> </td><td> </td><td> </td></tr><tr>"
' HTML after rows
strAfterRows = "</tr></table>"
' final HTML - concatenate the 3 string variables
strAll = strBeforeRows & strApplication & strBetweenRows & strSpecs & strAfterRows
Debug.Print strAll
End Sub
Das ist, was ich bisher bekommen habe, und es produziert HTML, aber wie kann ich es in einer Schleife durch die Reihen erhalten , die in iM
<style type="text/css">
table.tableizer-table { border: 1px solid #CCC; font-family: Arial, Helvetica, sans-serif font-size: 12px;}
.tableizer-table td { padding: 4px; margin: 3px; border: 1px solid #ccc;}
.tableizer-table th { background-color: #104E8B; color: #FFF; font-weight: bold;}
</style>
<table width="100%" class="tableizer-table">
<tr class="tablezer-firstrow">
<th>
<p>Make</p>
</th>
<th>Model</th>
<th>Series</th>
<th>Engine</th>
<th>Years (mm/yy)</th>
</tr>
<tr>
<td>
<div align="center">Ford</div>
</td>
<td>
<div align="center">Focus</div>
</td>
<td>
<div align="center">LR</div>
</td>
<td>
<div align="center">2.0L 4cyl Petrol - EDD#</div>
</td>
<td>
<div align="center">06/02 - 04/05</div>
</td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<th colspan="2" class="tableizer-firstrow">Specifications</th>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<tr>
<td>Volts</td>
<td align="right" width="120">
<div align="center">12</div>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<tr>
<td>Amps</td>
<td align="right" width="120">
<div align="center">90</div>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<tr>
<td>Adjustment Hole (mm)</td>
<td align="right" width="120">
<div align="center">8</div>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<tr>
<td>Pivot Hole (mm)<</td>
<td align="right" width="120">
<div align="center">8</div>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<tr>
<td>Adjustment to Pivot (mm)</td>
<td align="right" width="120">
<div align="center">8</div>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<tr>
<td>Pivot Length (mm)</td>
<td align="right" width="120">
<div align="center"></div>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<tr>
<td>Inside Feet To Feet (mm)</td>
<td align="right" width="120">
<div align="center">64</div>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<tr>
<td>Pulley (mm)</td>
<td align="right" width="120">
<div align="center">53</div>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<tr>
<td>No Of Grooves</td>
<td align="right" width="120">
<div align="center">6PV</div>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<tr>
<td>Plug</td>
<td align="right" width="120">
<div align="center">RP222</div>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr></tr>
</table>
Ich schrieb einen Klasse auf Code Review, die es HTML einfach erstellen macht: [HTML Erstellen eines Builder-Muster verwenden] (https://codereview.stackexchange.com/questions/178814/creating-html -building-a-builder-Muster) –