使用vba关闭其名称在工作簿单元格中指定的文件

时间:2014-01-22 17:00:10

标签: excel vba excel-vba

我正在使用VBA迭代表中的行。 对于每一行代码(我将行称为“方案”) 打开第6列中指定的文件路径, 做某事,并且 关闭第6列中指定的文件路径

我正在尝试执行以下代码;但是,它失败了,因为必须将文件名指定为字符串。我不能这样做,因为我的表格中的每一行的文件名都不同

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

使用单元格引用关闭文件的正确语法是什么?

非常感谢!

1 个答案:

答案 0 :(得分:1)

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