我想运行一个批处理文件,该文件将使用 excel 打开一个 html 文件,然后将打开的 html 文件保存为 xls 或 xlsx 文档。理想情况下,该批处理将安排在每晚运行。使用如下所示的简单代码将在 excel 中打开一个 html 文档
start excel test.html
我遇到的问题是如何继续使用代码。有人能提供一些见解吗?
答案1
只是为了结束这个问题:
这个问题的解决方案是编写两个脚本:第一个是用 excel 编写的 vba 脚本,保存到 xlsm 文档中。第二个是 .bat 文件,它将运行前面提到的 xlsm 文档以触发 vba 脚本,最终将 html 文档转换为 xlsx。
第一步:在 Excel 中,有两件事要做:创建将 html 文档保存为 xlsx 文档的 VBA 代码(我们称之为 A)。第二步是创建 VBA 代码,该代码将自动运行前面提到的代码 [指定将 htlm 保存为 excel 文件然后关闭](我们称之为 B)。
A 的代码是
Sub Open_HTML_Save_XLSX()
Workbooks.Open Filename:="**NameOfHTMLfileHere.HTML"
ActiveWorkbook.SaveAs Filename:= _
"**NewName.XLSX", FileFormat:= _
xlOpenXMLWorkbook
ActiveWorkbook.Close
End Sub
您会注意到代码非常简单。总结一下代码,打开 html 文档,另存为 xlsx 文档,关闭工作簿。A 的代码进入模块部分。
对于 B 部分,您必须在 xlsm 文档的 Microsoft Excel 对象文件夹的“ThisWorkbook”部分中保存另一个 VBA 脚本。
Private Sub Workbook_Open()
Call Open_HTML_Save_XLSX
Application.Quit
End Sub
再说一遍,没那么复杂。脚本只是说当你打开这个工作簿时运行 VBA 脚本,它将进行文件转换,然后退出 excel。
因此,一旦设置了 XLSM 文档,唯一要做的就是编写一个批处理脚本来打开 XLSM 文档,它将完成所有工作。
该批次非常简单:
echo on
start excel "vbatest.xlsm"
运行批处理,打开 xlsm 文档。打开 Xlsm 文档会触发 VBA 代码运行。然后,VBA 代码会打开所需的 html 文档并将其保存为 xlsx。然后 Excel 关闭,批处理文件已运行完毕,您的目标已实现。
就这样吧,大家,谢谢你们送来的鱼。