本指南解释了如何使用 Node.js 在 Excel VBA 库中添加模块。它包含设置开发环境的详细信息、添加 VBA 代码的任务列表以及使用 Node.js 访问 VBA 代码库以添加方法的过程。您将学习自定义模块和添加多种方法的各种选项。
使用 Node.js 更新 VBA 代码库的步骤
- 配置 Aspose.Cells for Node.js via Java 添加 VBA 代码
- 创建一个 workbook 并获取对用于添加 VBA module 的工作表的引用
- 从 Excel 工作簿中的 VbaProject 访问模块集合
- 获取新添加模块的引用
- 设置模块名称
- 设置模块代码
- 保存 Excel 工作簿
这些步骤总结了使用 Node.js* 增强 *Excel VBA 代码库的过程。访问工作簿中包含模块集合的 VbaProject 对象以添加新模块。设置新模块的各种属性,例如使用多种方法添加多行VBA代码的名称和代码。
使用 Node.js 添加 Excel VBA 源代码库的代码
var aspose = aspose || {}; | |
aspose.cells = require("aspose.cells"); | |
// Set the license | |
new aspose.cells.License().setLicense("License.lic"); | |
// Create a workbook | |
var wb = new aspose.cells.Workbook(); | |
// Select a sheet | |
var ws = wb.getWorksheets().get(0); | |
// Add VBA Module | |
var idx = wb.getVbaProject().getModules().add(ws); | |
var module = wb.getVbaProject().getModules().get(idx); | |
// Assign a name | |
module.setName("ConvertTextToUpper"); | |
// Set code | |
const moduleCodes = ` | |
Private Sub Worksheet_Change(ByVal Target As Range) | |
On Error Resume Next | |
' Disable events | |
Application.EnableEvents = False | |
Dim cell As Range | |
For Each cell In Target | |
If Not Intersect(cell, Me.UsedRange) Is Nothing Then | |
' Convert to uppercase | |
cell.Value = UCase(cell.Value) | |
End If | |
Next cell | |
' Enable events after the changes are made | |
Application.EnableEvents = True | |
End Sub | |
`; | |
module.setCodes(moduleCodes); | |
// Save the output | |
wb.save("VbaCodeExcel.xlsm", aspose.cells.SaveFormat.XLSM); | |
console.log("Vba Code added successfully"); |
此代码演示了如何使用 Node.js* 修改 *Excel VBA 库。在此示例代码中,添加了一个 VBA 方法来处理工作表中的更改事件,以便每当在单元格中输入字符串时,它都会自动转换为大写,但是,您可以在此代码段中添加多个事件处理程序。 VbaProject 类具有各种用于自定义的属性和方法,例如保护或取消保护 VBA 项目、设置编码和对其进行签名。
在本主题中,我们学习了在 VBA 库中添加方法。要在 Excel 文件中应用过滤器,请参阅有关 如何使用 Node.js 在 Excel 中应用过滤器 的文章。