Criar um arquivo HTML com uma tabela de conteúdo com base em dados de célula
Este exemplo de código mostra como tirar dados de uma planilha e criar uma tabela de conteúdo em um arquivo HTML. A planilha deve ter dados nas colunas A, B e C que correspondam aos primeiros, segundos e terceiros níveis da tabela de hierarquia de conteúdo. O arquivo HTML é armazenado na mesma pasta de trabalho que a pasta de trabalho ativa.
Código de exemplo fornecido por: Holy Macro! Livros, Holy Macro! É 2,500 exemplos do VBA Excel VBA
Sub CreateHTML()
'Define your variables.
Dim iRow As Long
Dim iStage As Integer
Dim iCounter As Integer
Dim iPage As Integer
'Create an .htm file in the same directory as your active workbook.
Dim sFile As String
sFile = ActiveWorkbook.Path & "\test.htm"
Close
'Open up the temp HTML file and format the header.
Open sFile For Output As #1
Print #1, "<html>"
Print #1, "<head>"
Print #1, "<style type=""text/css"">"
Print #1, " body { font-size:12px;font-family:tahoma } "
Print #1, "</style>"
Print #1, "</head>"
Print #1, "<body>"
'Start on the 2nd row to avoid the header.
iRow = 2
'Translate the first column of the table into the first level of the hierarchy.
Do While WorksheetFunction.CountA(Rows(iRow)) > 0
If Not IsEmpty(Cells(iRow, 1)) Then
For iCounter = 1 To iStage
Print #1, "</ul>"
iStage = iStage - 1
Next iCounter
Print #1, "<ul>"
Print #1, "<li><a href=""" & iPage & ".html"">" & Cells(iRow, 1).Value & "</a>"
iPage = iPage + 1
If iStage < 1 Then
iStage = iStage + 1
End If
End If
'Translate the second column of the table into the second level of the hierarchy.
If Not IsEmpty(Cells(iRow, 2)) Then
For iCounter = 2 To iStage
Print #1, "</ul>"
iStage = iStage - 1
Next iCounter
Print #1, "<ul>"
Print #1, "<li><a href=""" & iPage & ".html"">" & Cells(iRow, 2).Value & "</a>"
iPage = iPage + 1
If iStage < 2 Then
iStage = iStage + 1
End If
End If
'Translate the third column of the table into the third level of the hierarchy.
If Not IsEmpty(Cells(iRow, 3)) Then
If iStage < 3 Then
Print #1, "<ul>"
End If
Print #1, "<li><a href=""" & iPage & ".html"">" & Cells(iRow, 3).Value & "</a>"
iPage = iPage + 1
If iStage < 3 Then
iStage = iStage + 1
End If
End If
iRow = iRow + 1
Loop
'Add ending HTML tags
For iCounter = 2 To iStage
Print #1, " </ul>"
iStage = iStage - 1
Next iCounter
Print #1, "</body>"
Print #1, "</html>"
Close
Shell "hh " & vbLf & sFile, vbMaximizedFocus
End Sub
Sobre o colaborador
A Holy Macro! Books publica livros divertidos para pessoas que usam o Microsoft Office. Consulte o catálogo concluído em MrExcel.com.
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de