【问题标题】:How to automate formatting excel file via a VBA module如何通过 VBA 模块自动格式化 excel 文件
【发布时间】:2024-01-24 04:31:01
【问题描述】:

我有一个用 Excel 用 VBA 编写的模块。此模块格式化 Excel 工作表并将新文件保存在指定的目标位置。到目前为止,我只是将模块导入 VBA 项目并从那里运行脚本。

我曾尝试为此使用 powershell,但这不是我的强项,而且我遇到了 excel 的安全问题。

几个总结模块:

'Essentially a lot of standard excel formatting, sorting, and fill colors

'Prompts for save location
Dim Fldr As String
With Application.FileDialog(4)
    .AllowMultiSelect = False
    If .Show <> -1 Then Exit Sub
    Fldr = .SelectedItems(1)
End With
ActiveWorkbook.SaveAs Fldr & "\generated_report.xlsx", 51

理想情况下,我想要一个可执行文件或脚本文件,它会提示输入目标 excel 文件,然后在该文件上运行宏并将其保存在目标中,但都是自动进行的。

这里的最终目的是一个轻量级脚本文件,无需更改 excel 中的安全设置即可运行,并且可以在任何安装了 excel 的机器上运行。任何帮助指出我使用该方法的正确方向将不胜感激。

【问题讨论】:

  • 有很多方法可以做到这一点。到目前为止,您研究/尝试了什么?
  • 如果您需要它来格式化任何文件,您可以将其放入您的 personal.xlsm 文件中并将其分配给快捷方式。
  • 我尝试使用 powershell 来自动化模块过程,但我开始遇到一些 excel 安全问题,我在这里寻找的更多是一个方向,我不想要走得太远,最终不会奏效。

标签: excel vba vbscript


【解决方案1】:

我最终将 VBA 代码翻译成 VBS,它打开未格式化的文件并对其进行操作,然后将其另存为新文档。完美运行

【讨论】:

    【解决方案2】:

    研究一种称为自动化的 VBA 技术。解决问题的一种方法是使用 .vbs 脚本自动处理每个工作簿文件。您可以从命令行运行 .vbs 脚本。例如。: https://www.experts-exchange.com/questions/23104413/Format-and-Excel-spreadsheet-using-vbscript.html

    【讨论】:

    • 所以基本上将我的 .bas 文件翻译成 .vbs 脚本?