Você está criando o arquivo HTML a partir da folha UsedRange
.
'Publish the sheet to a htm file
With TempWB.PublishObjects.Add( _
SourceType:=xlSourceRange, _
Filename:=TempFile, _
Sheet:=TempWB.Sheets(1).Name, _
Source:=TempWB.Sheets(1).UsedRange.Address, _
HtmlType:=xlHtmlStatic)
.Publish (True)
End With
Depois de definir Sheet:=TempWB.Sheets(1).Name
, você pode declarar outra variável de intervalo para capturar APENAS as linhas necessárias para cada loja e usá-las como Source:=
.
Seu código não está funcionando no meu Excel 2010, por isso não posso verificar, mas em vez de usar o usedRange
você deve poder especificar apenas um endereço de intervalo em outra variável .
Exemplo:
Sub PublishObjectFromFilteredRange()
'An example of applying autofilter to sheet
' and setting range variable = to the autofiltered cells/visible cells
Dim ws As Worksheet
Dim storeID As String
Dim tableRange As Range
Dim filteredRange As Range
Dim pObj As PublishObject
Set ws = Sheets("Sheet1")
'Define the range of the table
Set tableRange = ws.Range(Range("A1").End(xlDown), Range("A1").End(xlToRight))
'Define the Store for which you want to create the report
storeID = "Store 1" '<---- change this as necessary
'Set a filter on the table
tableRange.AutoFilter Field:=1, Criteria1:=storeID
'determine the visible table range
Set filteredRange = tableRange.Cells.SpecialCells(xlCellTypeVisible)
'Create & publish the PublishObject
Set pObj = ActiveWorkbook.PublishObjects.Add( _
SourceType:=xlSourceRange, _
Filename:="C:\Users\david_zemens\Desktop\publish.htm", _
sheet:="Sheet1", _
Source:=filteredRange.Address, _
HtmlType:=xlHtmlStatic)
pObj.Publish True
End Sub