2014-01-22 52 views
1

指定名字我使用VBA通过表中的行要迭代的文件。 对于每一行代码(在这里我指的是行作为“方案”) 开6列指定的文件路径, 做一些事情,并 关闭在列中指定的文件路径6使用VBA来关闭其工作簿中的单元格

我想执行下面的代码;但是,它是失败的,因为文件名必须指定为字符串。我不能这样做,因为文件名会在我的表

Workbooks("scenario.Columns(6)", False).Close

什么是正确的语法使用的文件名的单元格引用关闭文件对于每一行有什么不同?

非常感谢!

回答

1

如果scenario范围包含一个行,以获得第六列,你需要使用的值:

Workbooks(scenario.Cells(,6)).Close False 

2.如果scenario范围包含行,以获得第六列,你需要指定行号,以及(即第二)值:

Workbooks(scenario.Cells(2,6)).Close False 

UPD:

试试这个(从评论如下):

Dim Scenario As Range 
Dim input_table As Range 

'Identifying input table 
Set input_table = Sheets("Input").[Scenario_input] 

'iterate through rows in table 
For Each Scenario In input_table.Rows 
    If Scenario.Columns(5).Value = "Yes" Then 
     Workbooks.Open Filename:=Scenario.Columns(6).Value 
     'do something 
     ' 
     'Close the scenario workbook 
     Workbooks(Scenario.Columns(6).Value).Close False 
    End If 
Next 
+0

我得到一个不匹配的错误,当我尝试这个 – user3224462

+0

现在就来试试。我已经更新了。顺便说一下,“场景”是范围对象?你需要获得第六列吗? –

+0

“方案”是使用 – user3224462

相关问题