您好,SS。您必须得喜欢 Excel。是的,目前,为了扮“酷”,您得说您不使用 Excel,而改为使用某种模仿 Office 的软件了。不过,我们倒想看看那些模仿 Office 的软件能否执行这样的任务并且只用几行代码来进行启动。
现在,说句老实话,刚开始看到此问题时,我们也不能保证这有多简单。但事实证明确实很简单:
Const xlCSV = 6
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:/Scripts/Testsheet.xls")
objExcel.DisplayAlerts = FALSE
objExcel.Visible = TRUE
Set objWorksheet = objWorkbook.Worksheets("Sheet1")
objWorksheet.SaveAs "c:/scripts/test.csv", xlCSV
objExcel.Quit
就这些,这就是整个脚本。首先,我们创建了一个名为 xlCSV 的常量并设置该值为 6;稍后我们将使用此常量指定新文件的文件格式。然后,我们创建了“Excel.Application”对象的一个实例并使用“Workbooks.Open”方法打开电子表格 C:/Scripts/Testsheet.xls。(我们还将“Visible”属性设置为 TRUE,但这仅仅表示您能看到所发生的事情。如果您更喜欢让 Excel 运行在一个不可见的窗口中,那么只需将以下这行代码略去即可。)
噢,我们还有另一行可能很有趣的代码:
objExcel.DisplayAlerts = FALSE
这行代码指示 Excel 不要显示任何消息框,而在每次有问题时使用默认值操作。我们为什么要为此费心呢?是这样的,我们打算将工作表信息保存到 CSV(逗号分隔值)文件中。如果该文件已经存在,Excel 将弹出一个消息框,询问我们是否要覆盖现有的文件。对于此脚本,我们假设总是覆盖现有的文件。我们通过将“DisplayAlerts”属性设置为 FALSE 禁止显示该消息框,并且指示 Excel 继续执行默认操作。在此例中,默认操作恰好为:“继续并覆盖任何现有的文件。”
打开 Excel 并运行它之后,只需采用两行代码就可将工作表数据保存到 CSV 文件中。首先,绑定到预期工作表(在此例中,工作表名为“Sheet1”):
Set objWorksheet = objWorkbook.Worksheets("Sheet1")
之后,我们只是调用“SaveAs”方法传递两个参数:CSV 文件的路径 (C:/Scripts/Test.csv) 和新文件的格式。因为想要将文件保存为 CSV 文件,所以我们使用老早就定义好的 xlCSV 常量。因此:
objWorksheet.SaveAs "c:/scripts/test.csv", xlCSV
现在我们要做的就是:调用“Quit”方法来终止 Excel 实例和我们执行的操作。您现在就来试一试,然后告诉我们那些模仿 Excel 的软件是否和真正的 Excel 一样好!
厚脸皮的自我推销:如果您对 Microsoft Office 应用程序脚本编写感兴趣,请一定要访问 Scripting for Microsoft Office (Microsoft Office 脚本编写)中心。该中心有 Office Space(Office 空间)专栏和其他一些内容,并且每个星期二和星期四都会提供新的 Microsoft Office 脚本提示。