Ссылка на другую ячейку вне рабочей книги - PullRequest
0 голосов
/ 22 января 2020

У меня есть список из 150 имен файлов из одного и того же каталога в столбце A в книге Excel, используя

=REPLACE(CELL("filename"),FIND("[",CELL("filename")),LEN(CELL("filename")),"*")

в верхней части книги и используя формулу

=IFERROR(INDEX(FileNameList,ROW()-2),"") 

для перечислите каждое имя файла в каталоге.

Я хочу сослаться на D4 в каждом из этих файлов и поместить значение этого рядом с именем файла в столбце B этой внешней рабочей книги.

Как я go могу получить их?

1 Ответ

1 голос
/ 22 января 2020

В приведенном ниже примере будут проходить итерации по всем файлам в данной папке, принимать значение от D4 на листах, называемых Sheet1, а затем помещать их в Dictionary до Transpose на текущем Worksheet.

Sub Test()

Dim wbPath As String, wsName As String
Dim oFSO As Object, oFolder As Object
Dim Dict As Object: Set Dict = CreateObject("Scripting.Dictionary")

wbPath = "C:\Users\...\TestFolder\"
wsName = "Sheet1"

Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder(wbPath)

For Each oFile In oFolder.Files
    Dict(oFSO.GetBaseName(oFile)) = ExecuteExcel4Macro("'" & wbPath & "[" & oFile.Name & "]" & wsName & "'!R4C4")
Next oFile

Range("A1").Resize(Dict.Count).Value = Application.Transpose(Dict.keys)
Range("B1").Resize(Dict.Count).Value = Application.Transpose(Dict.Items)

End Sub

Кстати, я черпал вдохновение из ответа Сиддхарта на ExecuteExcel4Macro здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...