我试图编写一个脚本,该脚本打开5个不同的excel文件,重命名每个文件中的工作表,并修改每个文件中多个单元格的内容,所有这些都在“ for each”循环中进行。到目前为止,我什至无法重命名工作表...
我正在使用“ for each”循环函数,但无法完全弄清楚如何在代码中引用Dim变量
'launch Excel and open file
Set xlObj = CreateObject("Excel.Application")
Dim names(i)
names(0)="VCS"
names(1)="VRS"
names(2)="VIN"
names(3)="VEU"
names(4)="VGT"
for i = 0 to 4
Set xlFile = xlObj.WorkBooks.Open("c:\warem32\EIA_Demand\NG_CONS_SUM_A_EPG0_" & names(i) & "_MMCF_M.xls")
'turn off screen alerts
xlObj.Application.DisplayAlerts = False
'change sheet to desired worksheet name
Worksheets.Name("Data 1").Name = "Data1"
Next
xlFile.Close True
next
xlObj.Quit
仅供参考,首次引用的名称应为: c:\ warem32 \ EIA_Demand \ NG_CONS_SUM_A_EPG0_VCS_MMCF_M.xls
是否可以在打开excel文件的代码行中引用x值(特别是在代码中我有字符(“ x”)的地方)?
如果我可以正确编码,则循环中的每次迭代都会更改文件名,并允许脚本选择其他文件,将“数据1”选项卡重命名为“数据1”。该代码当前根本不起作用。我还想使用嵌套循环修改data1工作表第3行中的多个单元格,但是我想先从这一点开始。 谢谢!
答案 0 :(得分:0)
尝试:
'launch Excel and open file
Set xlObj = CreateObject("Excel.Application")
'turn off screen alerts
xlObj.Application.DisplayAlerts = False
Dim MyNames As Variant
MyNames = Array("VCS", "VRS", "VIN", "VEU", "VGT")
for i = LBound(MyNames) To UBound(MyNames)
Set xlFile = xlObj.WorkBooks.Open("c:\warem32\EIA_Demand\NG_CONS_SUM_A_EPG0_(" & MyNames(i) & ")_MMCF_M.xls")
'change sheet to desired worksheet name
Worksheets.Name("Data 1").Name = "Data1"
xlFile.Close True
Next i
(仅供参考,这未经测试,但我认为应该可以使用)