在 HTMLBody 中显示工作表名称

Display Worksheet Names in HTMLBody

我有一个用于起草电子邮件的宏。对于 .HTMLBody 字段,我想在电子邮件正文中按以下方式显示当前工作簿中所有工作表的名称。

苹果

橘子

葡萄

香蕉

以下代码将用一行填充我的电子邮件正文:
ApplesPearsOrangesGrapesBananas

我的完整代码没有显示,因为一些硬编码行包含机密信息。

Dim wks As Worksheet, strName As String

For Each wks In Worksheets
    strName = strName & wks.Name
Next

msg = strName
.HTMLBody = strName

列出工作表名称

  • 您可以使用以下功能:
Function ListWorksheetNames( _
    ByVal wb As Workbook, _
    ByVal Delimiter As String) _
As String
    If wb Is Nothing Then Exit Function
    If wb.Worksheets.Count = 0 Then Exit Function
    
    Dim ws As Worksheet
    Dim wsNames As String
    
    For Each ws In wb.Worksheets
        wsNames = wsNames & ws.Name & Delimiter
    Next ws
    wsNames = Left(wsNames, Len(wsNames) - Len(Delimiter)) ' remove last

    ListWorksheetNames = wsNames

End Function
  • 在您的代码中,您可以按以下方式使用它:

    Dim msg As String
    msg = ListWorksheetNames(ThisWorkbook, vbLf)  
    

    其中 ThisWorkbook 是包含此代码的工作簿。

  • 如果中间需要空行,可以使用vbLf & vbLf.