对整个工作簿重复 vba

repeat vba for entireworkbook

我有将 xlsm 转换为 html 的代码。我需要为整个工作簿重复此代码并且

1-导出文件名,与sheet名称相同,在文件路径

2-select printarea range for convert each sheet

3-每个sheet,分别转换为html

Sub Export()
 Dim rng As Range

 file1 = ThisWorkbook.Path & "\" & "test.html"

 Set rng = Sheets("Tabelle1").Range("A1:C10")

 ActiveWorkbook.PublishObjects.Add( _
 SourceType:=xlSourceRange, _
 Filename:=file1, _
 Sheet:=rng.Worksheet.Name, _
 Source:=rng.Address, _
 HtmlType:=xlHtmlStatic).Publish

End Sub

请尝试下一种方式:

Sub ExportAllSheets()
 Dim rng As Range, file1 As String, sh As Worksheet

 For Each sh In ThisWorkbook.Sheets
   If sh.PageSetup.PrintArea <> "" Then
     Set rng = sh.Range(sh.PageSetup.PrintArea)
     file1 = ThisWorkbook.path & "\" & sh.Name & ".html"
     ActiveWorkbook.PublishObjects.Add( _
            SourceType:=xlSourceRange, fileName:=file1, _
            sheet:=sh.Name, Source:=rng.Address, _
            HtmlType:=xlHtmlStatic).Publish
   End If
 Next
End Sub

它应该为每个 sheet 导出 html 个文件,以 sheet 名称作为文件名。