You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VBA代码中添加表格样式以实现预期显示效果

需求:调整VBA生成的HTML表格样式以匹配目标效果

我需要修改VBA代码中的表格样式,使生成的HTML表格达到目标样式效果,但目前修改后生成的表格未达到预期。以下是相关代码:

生成表格的函数代码

Private Function getItems(lb As MSForms.ListBox) As String
    Dim row, col As Long
    Dim i      As String, items As String
    Dim total  As Double

    '检查列表框是否为空
    If Me.ListboxResult.ListCount = 0 Then
        getItems = ""
        Exit Function
    End If
    '表格结构
    items = "<table border='1' style='width: 50%'><tr><th style = 'text-align:left;'>Type</th><th style = 'text-align:left;'>Item</th><th style = 'text-align:left;'>Quantity</th><th style = 'text-align:left;'>Unit</th></tr>"
    
    With lb
        total = 0
        For row = 0 To .ListCount - 1
            i = "<tr>"
            
            '添加每行的单元格
            i = i & "<td style= 'border: 1px solid black; border-collapse: collapse' >" & .Column(0, row) & "</td>"
            i = i & "<td style= 'border: 1px solid black; border-collapse: collapse;'>" & .Column(1, row) & "</td>"
            i = i & "<td style='border: 1px solid black; text-align: right;  border-collapse: collapse'>" & .Column(2, row) & "</td>"
            i = i & "<td style='border: 1px solid black; border-collapse: collapse'>" & .Column(3, row) & "</td>"
            
            i = i & "</tr>"                       '结束行
            items = items & i
            i = ""
            total = total + CDbl(.Column(2, row))
        Next row
        i = "<tr><td style='border: none; border-collapse: collapse'></td><td style='border: none; border-collapse: collapse'></td><td style='text-align: right; border: 1px solid black; border-collapse: collapse'> <b>Total:</b>  " & CStr(total) & "</td></tr>"
        items = items & i
    End With
    
    items = items & "</table>"
    getItems = items
    
End Function

发送邮件的代码

Private Sub submit(ByVal items As String)         '发送邮件
    Dim EmailApp As Outlook.Application
    Dim EmailItem As Outlook.MailItem
    Dim Source As String

    Set EmailApp = New Outlook.Application        '直接创建新实例,需引用Outlook对象库
    'Set EmailApp = CreateObject("Outlook.Application") '创建Outlook应用新实例,无需环境引用
    Set EmailItem = EmailApp.CreateItem(olMailItem)
    
    With EmailItem
        .To = "abc@email.com"
        .Subject = "Stationery Request"
        '.Body = "请参考以下订购详情:" & vbNewLine & vbNewLine & items & vbNewLine & vbNewLine & "总计: " & Me.TxtboxTotal.Value
        
        '.HTMLBody = "尊敬的xxx,<br><br>" & vbNewLine & "请参考以下订单详情:<br><br>" & items & "<br> <br> 此致, <br>" & "姓名"
        .HTMLBody = "请参考以下订单详情:<br><br>" & items
        'Source = ThisWorkbook.FullName
        '.Attachments.Add Source
        .Display
        '.Send
    End With
End Sub

内容的提问来源于stack exchange,提问作者user22924278

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 14:46:04