在excel中可以将excel工作簿另存为网页,如下图所示:
在vba中可以使用PublishObjects对象或者PublishObject对象的Publish方法将excel工作簿、工作表、单元格区域发布为网页。
在用vba excel工作簿、工作表、单元格区域发布为网页之前,要先用PublishObjects对象的Add方法添加要发布的对象。
以下vba代码可以将当前excel工作簿添加为发布对象,并发布为网页:
Sub QQ1722187970() Dim oWB As Workbook Set oWB = Excel.ThisWorkbook Dim oPO As PublishObject Dim sPath As String sPath = Excel.ThisWorkbook.Path & "\" With oWB Debug.Print .PublishObjects.Count For Each oPO In .PublishObjects oPO.Delete Next '将整个工作簿添加为发布对象,发布为网页 With .PublishObjects.Add(SourceType:=xlSourceWorkbook, Filename:=sPath & "Result.htm", HtmlType:=xlHtmlStatic, DivID:="Test1") '开始发布 .Publish (True) End With End With End Sub
如果要把其中某个工作表发布为网页,需要SourceType参数设置为xlSourceSheet,同时Source参数设置为工作表的名称。如下代码所示是将当前工作簿的第4个工作表添加为发布对象,并发布为网页:
Sub QQ1722187970() Dim oWB As Workbook Set oWB = Excel.ThisWorkbook Dim oWk As Worksheet Set oWk = oWB.Worksheets(4) Dim oPO As PublishObject Dim sPath As String sPath = Excel.ThisWorkbook.Path & "\" With oWB Debug.Print .PublishObjects.Count For Each oPO In .PublishObjects oPO.Delete Next '将当前工作簿的第4个工作表添加为发布对象,发布为网页 Set oPO = .PublishObjects.Add(xlSourceSheet, sPath & "Result.htm", oWk.Name, , xlHtmlStatic) With oPO '开始发布 .Publish (True) End With End With End Sub
如果要把某个工作表的某个单元格区域发布为网页,需要SourceType参数设置为xlSourceRange,同时Source参数设置为单元格区域的地址,如下代码所示:
Sub QQ1722187970() Dim oWB As Workbook Set oWB = Excel.ThisWorkbook Dim oWk As Worksheet Set oWk = oWB.Worksheets(1) Dim oRng As Range Set oRng = oWk.Range("a1").CurrentRegion Dim oPO As PublishObject Dim sPath As String sPath = Excel.ThisWorkbook.Path & "\" With oWB Debug.Print .PublishObjects.Count For Each oPO In .PublishObjects oPO.Delete Next '将当前工作簿的第1个工作表的A1单元格的当前单元格区域添加为发布对象,发布为网页 Set oPO = .PublishObjects.Add(xlSourceRange, sPath & "Result.htm", oWk.Name, oRng.Address, xlHtmlStatic) With oPO '开始发布 .Publish (True) End With End With End Sub
发表评论