RangeHTML 主体。如何包含我的标题

问题描述 投票:0回答:1

所以,我不确定我做错了什么,我似乎无法让我的标题进入我的范围。仅输入最后一行数据。但是,我想要输入标题和最后一行数据。

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
html excel vba outlook
1个回答
0
投票

第一行隐藏了所有 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>  

原表:

HTML 图片:

© www.soinside.com 2019 - 2024. All rights reserved.