使用VBA在Excel中编写和保存HTML

问题描述 投票:0回答:1

寻求帮助,因为我还没有找到关于这个特定主题的任何内容。

目标:我想直接在Excel中编写HTML样式,按下按钮并打开生成的html文件并打开写入输出。

背景:我知道这听起来很奇怪,但我有很多来自sql查询的数据。然后在excel中对它们进行计算,排序和过滤。为了可视化这些我在电子表格中直接以html格式转换输出(我知道这个任务可以用PHP更快地完成 - 但不幸的是,我的公司没有授予这个任务)。

我的所有尝试都是写VBA以将电子表格保存为html。但Excel总是尝试将整个工作表可视化为html,而不仅仅是在工作表中写下的普通html代码。

非常简化,这是在A1:A8之间的常规Excel电子表格中输入的内容

<!DOCTYPE

<htm>

<body>


<img src="https://i.stack.imgur.com/oURrw.png" alt=stack" width="50" height="60">



</body> </html>

希望这听起来不要有线:)感谢您的帮助!短剑的一种

html excel vba excel-vba
1个回答
0
投票

试试这个代码

Sub Test()
Dim a           As Variant

a = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row).Value

a = Convert2DArrayTo1DArray(a)
ArrayToTextFile a, ThisWorkbook.Path & "\Sample.html"
End Sub

Function Convert2DArrayTo1DArray(arr As Variant)
Dim b()         As Variant
Dim s           As String
Dim i           As Long

ReDim b(1 To UBound(arr, 1))

For i = 1 To UBound(arr, 1)
    b(i) = arr(i, 1)
Next i

Convert2DArrayTo1DArray = b
End Function

Function ArrayToTextFile(a As Variant, strPath As String)
Dim fso         As Object
Dim fn          As Object
Dim i           As Long

Set fso = CreateObject("Scripting.FileSystemObject")
Set fn = fso.OpenTextFile(strPath, 2, True)

For i = LBound(a) To UBound(a)
    fn.writeline a(i)
Next i

fn.Close
End Function
© www.soinside.com 2019 - 2024. All rights reserved.