Как изменить Font.Bold содержимого массива с C# в Excel? - PullRequest
0 голосов
/ 27 января 2020

С помощью Excel VBA я могу написать / установить массив диапазона, например Range («A1: B2, C2: D3»). Font.Bold = True, поэтому он будет иметь значения A1, A2, B1, B2, C2, C3 , D2 и D3 Шрифт-> Жирный.

Но затем я пробую это с C#, я получаю «Исключение из HRESULT: 0x800A03E C», и я не могу понять, почему?

Я знаю, что диапазон имеет некоторые ограничения, но учитывая speed и другие вещи, это лучший способ установить Font.Bold как диапазон сразу, а вместо этого делать отдельные вызовы на каждую ячейку.

Надеюсь, кто-то может мне помочь:)

Ответы [ 2 ]

0 голосов
/ 27 января 2020

Здесь есть некоторые предположения, если не считать фактического C#, но я считаю, что этот код будет работать:

Excel.Worksheet sheet;
sheet.Range["A1:B2,C2:D3"].Font.Bold = true;

Так что я могу только предположить, что вы использовали скобки () вместо скобок [].

В VBA параметры функции и индексаторы используют круглые скобки. В C# параметры функции используют круглые скобки, но для вызова индексатора необходимо использовать квадратные скобки.

Выдает ли приведенный выше код ту же ошибку?

0 голосов
/ 27 января 2020

Диапазон может быть частью параметров Range (). Пожалуйста, попробуйте стиль ниже -

Excel.Range range1 = _with.Range("A1:B2");
Excel.Range range2 = _with.Range("C2:D3");

_with.Range(range1,range2).Font.Bold = true;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...