excel - 将数组集成到excel VBA中的子例程中
问题描述
我是 vba 新手,我正在尝试创建一个子例程,它将对 5 个工作簿执行相同的复制和粘贴操作。
我试图通过构建一个包含所有需要执行该功能的窗口的数组来做到这一点,如下所示:
Sub Copyinforevised()
Dim i As Integer
Dim z As Integer
i = 1
z = 5
Dim wb(i To z) As Window
wb (1): Set wb1 = Windows("Chariot OPS project workbook.xlsx")
wb (2): Set wb2 = Windows("Chariot RAN project workbook.xlsx")
wb (3): Set wb3 = Windows("Chariot AT project workbook.xlsx")
wb (4): Set wb4 = Windows("Chariot OSS project workbook.xlsx")
wb (5): Set wb5 = Windows("Chariot MOB project workbook.xlsx")
For i = 1 To z
Windows(wb(i)).Activate
[function to be done to the workbook]
Next i
End Sub
但是当我尝试运行宏时,我收到错误“查询编译错误常量表达式”
解决方案
这是一个有效的语法:
Sub Copyinforevised()
Dim i As Integer
Dim z As Integer
Dim wb
i = 1
z = 5
ReDim wb(i To z) As Window
Set wb(1) = Windows("Chariot OPS project workbook.xlsx")
Set wb(2) = Windows("Chariot RAN project workbook.xlsx")
Set wb(3) = Windows("Chariot AT project workbook.xlsx")
Set wb(4) = Windows("Chariot OSS project workbook.xlsx")
Set wb(5) = Windows("Chariot MOB project workbook.xlsx")
End Sub
注意使用ReDim
.
推荐阅读
- python - Python如何从csv文件的第三行读取第二列
- angularjs - 无法在弹出窗口中显示响应(模态)
- python - 自动检测股票价格的高低并在 Python 中绘制趋势线
- reactjs - Laravel Mix 与 css 加载器
- javascript - 将类添加到if包含文本
- mysql - Express - MySQL conn.end() 不起作用(调用退出后无法入队)
- azure - azure sql 数据库中的存储过程在另一个 azure sql 数据库中查询表
- java - 如何处理纯文本中的链接和数字
- javascript - 无法获取 vars 的值以使用 javascript 动态创建表单
- c# - 如何从 C# 中的枚举中获取显示值?