#vsto
#vsto
Вопрос:
Как я могу получить доступ к конкретной ячейке B1 из моей надстройки Excel vsto в Microsoft Visual Studio 2010.
Globals.Sheet1.Range(“B3”).Value
это не работает, поскольку кажется, что это синтаксис для документа Excel вместо надстройки Excel.
редактировать, похоже, это работает
Microsoft.Office.Interop.Excel.Worksheet activeSheet = Globals.ThisAddIn.Application.ActiveSheet as Microsoft.Office.Interop.Excel.Worksheet;
var currentCells = activeSheet.get_Range("A1", "E1");
currentCells.Select();
но тогда как мне выбрать конкретные значения в currentCells
?
Ответ №1:
Попробуйте что-нибудь в этом роде:
var excel = Globals.ThisAddIn.Application;
var activeSheet = (Worksheet)excel.ActiveSheet;
var cell = activeSheet.Range["B1", Type.Missing];
var content = cell.Value2;
Комментарии:
1. начиная с .Net 4.0, вам даже не нужен тип.Отсутствует, не так ли, Матиас? (придирчивый, я знаю, лол)
Ответ №2:
Вы могли бы сделать диапазон.Найдите (…), а затем FindNext, добавив найденные ячейки в список
В качестве альтернативы, вы могли бы выполнить итерацию по всему диапазону.Элемент [i, j] для i = 1 в Range.Rows.Количество (== 1 в вашем случае) и j = 1 для диапазона.Столбцы.Посчитайте, как это, и по ходу дела проверяйте значения отдельных ячеек.
Используйте приложение.Объединение для объединения нескольких диапазонов из полученного списка и выполнения функции Select() в объединенном диапазоне