excel - VBScript 打开 Excel 文件,然后执行另存为

标签 excel vbscript vba

我正在尝试编写一个 vba 脚本来自动打开一个 excel 文件,在某个单元格中将日期增加一,然后等待 2 分钟,让所有其他字段填充当天的信息。填充其他字段后,我希望脚本关闭文件并保存为运行脚本的日期。我打算将此脚本添加到 Windows 任务管理器中,以便每天凌晨 2 点运行。到目前为止,我有这样的东西。

Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("c:\Users\dr\Desktop\test.xlsx")

objExcel.Application.Visible = True
objExcel.Workbooks.Add
objExcel.Cells(3, 2).Value = "=today()"

WScript.Sleep 120000

wb.SaveAs Format( Now(), “DD-MMM-YY”)

最佳答案

您的脚本需要打开工作簿,然后更新日期、计算(“填充其他单元格”)、保存并关闭。我的建议是不要为此使用 sleep ,而只是强制工作簿计算然后关闭它。就像@iDevlop 所说:更改 B3 中的公式是不必要的。实际显示 Excel 应用程序也是如此。

下面打开工作簿,重新计算(因此 B3 值将是今天的日期,工作簿的其余部分将相应地计算),然后保存:

Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("c:\Users\dr\Desktop\test.xlsx")
objExcel.Calculate
objWorkbook.SaveAs Format( Now(), “DD-MMM-YY”)

有关 .calculate 的信息见 https://msdn.microsoft.com/EN-US/library/office/ff195517.aspx

关于excel - VBScript 打开 Excel 文件,然后执行另存为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35132469/

相关文章:

c# - CodeFluent 与 Interop.MSScriptControl.dll

c# - 在 Excel 工作表中插入数据时 Insert into 语句中出现语法错误

http - 在 vbscript 中检索多个 cookie

vba - 在某些计算机上,Excel VBA 中的 Outlook 空白 'To' 字段

vbscript - 将文本追加到文本文件(如果已存在)

vba - 使用 VBA 将一列公式从相对引用转换为固定引用

excel - VBA:可以在运行时配置一组 "constants"吗?

excel - 如何从 vba 使用 xtensor?

java - 如何使用selenium查找Excel文件中字符串的位置

python - Unicode解码错误: 'ascii' codec can't decode byte 0xea in position 8: ordinal not in range(128)