寻求帮助,因为我还没有找到关于这个特定主题的任何内容。
目标:我想直接在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>
希望这听起来不要有线:)感谢您的帮助!短剑的一种
试试这个代码
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