【问题标题】:How can I run a .txt macro on many .xslx files without having to change the .xlsx file?如何在许多 .xlsx 文件上运行 .txt 宏而无需更改 .xlsx 文件?
【发布时间】:2020-07-18 20:04:31
【问题描述】:

我举个例子。所以,假设我有一个非常简单的宏:

Sub updateOneCell(cellNumber As String, cellLetter As String, updatedValue As String)

    Range(cellLetter & cellNumber).value = updatedValue

End Sub

如何运行这个在多个 .xlsx 上保存为 .txt 的宏,而无需将 .xlsx 转换为 .xlsm?也无需打开 .xlsx 文件。

【问题讨论】:

标签: excel vba


【解决方案1】:

也许将代码存储在单独的 .xlsm 工作簿中是合适的解决方案?您可以直接从 .xlsm 工作簿运行代码并一次更改所有 .xlsx 文件。

在关闭的工作簿中更改数据是不可能的(据我所知)......也许如果直接更改文件的字节内容,我猜这不是一个很好的解决方案。相反,您可以使用 ActiveWindow.Visible = False 隐藏要编辑的工作簿。

【讨论】:

  • 使用第三方库可能可以更改已关闭工作簿中的数据,但我不知道它在多大程度上提高(或降低)速度。对于抑制渲染,Application.ScreenUpdating = False 可能会更好,因为它会停止所有屏幕更新。