单元格中使用文件名的封闭工作簿的Excel单元格引用
我有一个包含96个xls文件的中央位置; 这96个文件中的每一个代表一个单独的testing:
“\ server5 \ Operations \ MainBoardtesting中心位置不要删除或重命名”
我创build了一个Excel工作簿,将单个testing的所有信息input到一张纸上。 然后,我使用VBA来拉取文件的名称,并在同一工作簿的第二张表上添加一个链接到文件。 我将这些文件链接到表1。
接下来,我将与testing执行相对应的首行上的所有信息添加到每个工作簿(Test)的单个行中。
现在我需要在新的工作簿(高级主板testinglog.xlsx)上填充工作表1
到目前为止,这个公式是有效的,但只适用于开放的工作簿
=INDIRECT("'\\server5\Operations\MainBoard testing central location DO NOT REMOVE or RENAME\["&A7&"]Summary'!$E9")
其中A7代表从A6到A103的文件名
总结E9是我想在单元格C7中input的单元格
Excel捕获C7
请注意填充的值,这是因为我打开了这两本工作书,所有#REF! 单元格包含与填充的单元格相同的公式。
请让我知道如果您需要任何额外的信息来完成这个繁琐的任务
我也试过微软推荐的方法:
='[20160613 1002257 35000010-01B.xls]Summary'!$E9
用包含文件名的单元replace文件名:
='["&A7&"]Summary'!$E9
我得到#REF! 在单元格和公式栏中自动更改为:
='(\\server5\Operations\MainBoard testing central location DO NOT REMOVE or RENAME\["&A7&"]Summary'!$E9
据微软称,Indirect()函数必须打开工作簿。 你可以通过使用VBA循环目录来获取使用这个路由的单元格值。
有一个UDF,下面是你如何添加它:
-
在Excel中打开Visual Basic编辑器(function区的“开发”选项卡 – 您可能需要进入Excel选项以取消隐藏)。
-
右键单击VBA项目([您的工作簿名称]),突出显示插入,然后单击模块。
-
将下面的内容粘贴到module1中,并将工作簿保存为.xlsm。
码:
Function GetField(Path As String, WorksheetName As String, CellRange As String) As Variant Dim wb As Workbook Dim ws As Worksheet Dim rng As Range Set wb = GetObject(Path) Set ws = wb.Worksheets(WorksheetName) Set rng = ws.Range(CellRange) Application.DisplayAlerts = False wb.Saved = True wb.Close SaveChanges:=False Application.DisplayAlerts = True End Function
然后,您可以在此工作簿中使用= GetField()。
参数:= getfield(“\ server5 \ Operations \ MainBoardtesting中心位置不要删除或重命名\”&A6,“摘要”,“E9”)
只用一个文件进行testing,但是你应该能够在多行的行/列中使用单元格引用,文件名等。
确认这可以在多个行/列上工作
编辑:改变工作簿如何从Alistair Weir提供的一些代码closures另一个问题。