У меня есть две рабочие книги: MainWorkbook, SourceWorkbook.
По сути, у меня есть пользователь, который вводит список биржевых тикеров в MainWorkbook. SourceWorkbook выполняет расчеты на основе одного тикера, а затем выводит информацию. Я отображаю часть этой информации в MainWorkbook (для каждого тикера, который вводит пользователь).
Процесс для этого (например, псевдокод)
Для каждый тикер:
- Изменить тикер в SourceWorkbook
- Обновить ссылки в MainWorkbook (чтобы новые данные извлекались)
- Вставить информацию, извлеченную в MainWorkbook, в виде значений Go на следующий тикер
Вот мой код:
For Each ticker In tickers_array
source_book.Worksheets("Calculation").Range("D4") = ThisWorkbook.Worksheets("Detailed Exhibit").Cells(7, current_ticker_col).Value
ThisWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources, Type:=xlExcelLinks
With ThisWorkbook.Worksheets("Detailed Exhibit")
.Range(.Cells(9, current_ticker_col), .Cells(29, current_ticker_col + 4)).Value = .Range(.Cells(9, current_ticker_col), .Cells(29, current_ticker_col + 4)).Value
End With
current_ticker_col = current_ticker_col + 4
Next
Примечание: я показываю информацию для каждого биржевого тикера в строках 9 - 29 в 4 столбцах (следовательно, обновляя current_ticker_col на 4 с помощью каждый l oop).
Проблема, с которой я столкнулся, заключается в том, что ссылки никогда не обновляются, поэтому я просто заканчиваю вставкой всех формул в качестве значений, поэтому MainWorkbook отображает информацию только для того тикера в SourceWorkbook изначально.