所以,我不确定我做错了什么,我似乎无法让我的标题进入我的范围。仅输入最后一行数据。但是,我想要输入标题和最后一行数据。
Public Function ConvertRangeToHTMLTable(rInput As Range) As String
'Declare variables
Dim rRow As Range
Dim rCell As Range
Dim strReturn As String
'Define table format and font
strReturn = "<Table border='1' cellspacing='0' cellpadding='7' style='border-collapse:collapse;border:none'> " & "<Table border='1' cellspacing='0' cellpadding='7' style='border-collapse:collapse;border:none'> "
'Loop through each row in the range
For Each rRow In rInput.Rows
'Start new html row
strReturn = strReturn & " <tr align='Center'; style='height:14.00pt'> "
**For Each rCell In rRow.Cells
'If it is row 1 then it is header row that need to be bold**
If rCell.Row = 1 Then
strReturn = strReturn & "<td valign='Center' style='border:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;height:1.05pt'><b>" & rCell.Text & "</b></td>" & "<td valign='Center' style='border:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;height:1.05pt'><b>" & rCell.Text & "</b></td>"
Else
strReturn = strReturn & "<td valign='Center' style='border:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;height:1.05pt'>" & rCell.Text & "</td>"
End If
Next rCell
'End a row
strReturn = strReturn & "</tr>"
Next rRow
'Close the font tag
strReturn = strReturn & "</font></table>"
'Return html format
ConvertRangeToHTMLTable = strReturn
End Function
Function EmailHTMLFirstAndLastRow() As String
Dim Target As Range
Set Target = EmailData
With Target
.EntireRow.Hidden = msoTrue
.Rows(1).Hidden = msoFalse
.Rows(.Rows.count).Hidden = msoFalse
.EntireRow.Hidden = msoFalse
End With
EmailHTMLFirstAndLastRow = ConvertRangeToHTMLTable(Target.Rows(Target.Row.count))
End Function
第一行隐藏了所有 Target。
第二行取消隐藏第 1 行。
第三行取消隐藏最后一行。
第四行取消隐藏整个表格。
With Target
.EntireRow.Hidden = msoTrue
.Rows(1).Hidden = msoFalse
.Rows(.Rows.Count).Hidden = msoFalse
.EntireRow.Hidden = msoFalse
End With
无论隐藏什么,这一行只占用最后一行(
Row
应该是Rows
)。ConvertRangeToHTMLTable(Target.Rows(Target.Rows.Count))
尝试删除
With...End With
块并将其用作最后一行:
EmailHTMLFirstAndLastRow = ConvertRangeToHTMLTable(Union(Target.Rows(1), Target.Rows(Target.Rows.Count)))
这将返回字符串:
<Table border='1' cellspacing='0' cellpadding='7' style='border-collapse:collapse;border:none'> <Table border='1' cellspacing='0' cellpadding='7' style='border-collapse:collapse;border:none'> <tr align='Center'; style='height:14.00pt'> <td valign='Center' style='border:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;height:1.05pt'>Header 1</td><td valign='Center' style='border:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;height:1.05pt'>Header 2</td><td valign='Center' style='border:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;height:1.05pt'>Header 3</td><td valign='Center' style='border:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;height:1.05pt'>Header 4</td><td valign='Center' style='border:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;height:1.05pt'>Header 5</td></tr> <tr align='Center'; style='height:14.00pt'> <td valign='Center' style='border:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;height:1.05pt'>LastRow 1</td><td valign='Center' style='border:solid windowtex
t 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;height:1.05pt'>LastRow 2</td><td valign='Center' style='border:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;height:1.05pt'>LastRow 3</td><td valign='Center' style='border:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;height:1.05pt'>LastRow 4</td><td valign='Center' style='border:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;height:1.05pt'>LastRow 5</td></tr></font></table>