Excel 使用存储在单元格中的值打开文件

Excel 使用存储在单元格中的值打开文件,excel,vba,Excel,Vba,好吧,标题有点模棱两可,但我想做的是: 我有一列文件名,我想用vba打开它们。我假设它会像我下面看到的一样,但我遗漏了一些东西。文件的数量可以更改,因此我无法使用确定的范围 For each cl in workbookC.worksheets("sheet1").range("A"). If cl.value <> "" then. Open (filename="cl.value"). End if. Next cl 工作手册C.工作表(“表1”).范围(“A”)中每个cl的。

好吧,标题有点模棱两可,但我想做的是: 我有一列文件名,我想用vba打开它们。我假设它会像我下面看到的一样,但我遗漏了一些东西。文件的数量可以更改,因此我无法使用确定的范围

For each cl in workbookC.worksheets("sheet1").range("A"). If cl.value <> "" then. Open (filename="cl.value"). End if. Next cl
工作手册C.工作表(“表1”).范围(“A”)中每个cl的
。如果cl.value为“”,则。打开(filename=“cl.value”)。结束如果。下一个cl

下面的代码应该可以工作。请注意,我建议在尝试打开之前,不仅要确保单元格不是空的,还要使用FileSystemObject检查文件是否存在

Dim sourceWorksheet
Set sourceWorksheet = workbookC.Worksheets("sheet1")

Dim row
For row = 1 To 10       'rows containing filenames
    If sourceWorksheet.Cells(row, 1).Value <> "" Then
        Dim xlwb
        Set xlwb = Workbooks.Open(sourceWorksheet.Cells(row, 1).Value)
            'do stuff
        xlwb.Close
    End If
Next
Dim源工作表
设置sourceWorksheet=workbookC.工作表(“sheet1”)
昏暗的一排
对于包含文件名的行=1到10'的行
如果sourcesheet.Cells(第1行).Value为“”,则
Dim xlwb
设置xlwb=Workbooks.Open(sourceWorksheet.Cells(第1行).Value)
“做事
xlwb.关闭
如果结束
下一个

可以肯定的是,您打开的文件是excel文件吗?你真的想把它们全部打开吗?或者您想打开它们,做点什么,然后关闭它们?@mr.Reband yes它们是excel文件;理想情况下,我希望一次打开两个文件并关闭它们,但每次打开文件时,我都会收到一条消息,说文件中有指向其他文件的链接,我不希望宏继续停止,因此我宁愿一次打开所有文件,然后再取消警告,请参阅本文: