Хорошо, я думаю, что ваш вопрос выяснен.
Вы хотите использовать VSTO для замены ссылки на рабочую книгу, которую вы используете для обновления значения в текущей рабочей книге.
Для меня подсказки ....
1. хотите получить информацию в этой ячейке и ее тип
2. используйте VSTO, чтобы сделать это
3. теперь я ломаю ссылку на эту ячейку
кстати, если мое предположение выше верное, топожалуйста, отредактируйте свой вопрос, чтобы иметь больше смысла для будущих читателей.
Пример кода
//get workbook link cell ref
var range = (Range)Globals.ThisAddIn.Application.Range["Sheet1!$a$5"];
//determine type
// if straight linking a value this step is unnecessary unless using the type info to format the cell
// or because you are doing a transformation or aggregation on the data prior to putting it somewhere.
// if needed... do some try/catchs on casting it to oledate, bool, double, string in that order.
// get value
var value = range.Value2;
// update "active" sheet
var sht = (Excel.WorkSheet)Globals.ThisAddIn.Application.ActiveSheet;
sht.Range["A1"].Value2 = value;
// don't forget to call FinalReleaseCOMObject and GC.WaitForPendingFinalizers/GC.Collect block!!
Также обратите внимание, что да, вы будете «ломать ссылку на ячейку», если будете использовать код INSTEAD.Обратите внимание, что вы можете сохранить ссылку на книгу, но тогда нет смысла использовать кодовый подход.Мой совет заключается в общем использовании кода, так как он более гибкий, но пользуйтесь ссылками, когда вам нужна скорость (конфигурации), а данные не требуют больше, чем базовые манипуляции (SUM, IF, базовые математические операторы).