C# оператор сравнения не = , а ==Спасибо, Александр, как раз зашел это исправить. Классика жанра: "Учи мат часть!" :)
Не удается применить оператор "==" к операндам типа "string" и "int".Батенька, вы же юзаете C#, главная особенность C# это строгая типизация, т.е. никакого разврата с автоматическим приведением типов. Это позволяет избежать некоторых ошибок и повысить скорость работы программы.
Я подразумеваю, что переменная rng объявлена как Object (т.к. Variant в C# не существует). И потом вы пытаетесь выдавить с ней свойства Value .Дело в том, что я использую тип Excel.Range, оболочка процедуры выглядит так:
В объектном браузере excel у "Range" указано два свойства Value и Value2.Если конкретизировать, то здесь похоже, что свойство Value является типом Variant, аналога которого в C# нет. Variant он похож на Object, и тоже позволяет создавать переменные "произвольного" типа. Как я писал выше что Variant в C# упаковывается в Object. И компилятор не может понять какой там тип упакован внутри. Поэтому нужно делать приведение типа у Range.Value . например к int.
Поэтому нужно делать приведение типа у Range.Value . например к int.Спасибо, Михаил, я этим как раз и занимаюсь. Хотя в многочисленных примерах с форумов excel как правило встречается value2, так что изучаю оба эти свойства.
Хотя в многочисленных примерах с форумов excel как правило встречается value2MSDN:
Быть может его предпочитают из за отсутствия аргумента.Думаю, что дело в том, что старый валютный тип упразднен, вместо него сейчас Decimal, но конвертировать старый тип в новый немного заморочено. Видимо с датой тоже самое.
Gets a Microsoft.Office.Interop.Excel.Range object that represents a cell or a range of cells. Use the Range property instead of this method.
Use the Range property instead of this method.Это справка, я собственно ею и руководствовался, решив не использовать get_Range.
Мне не нравится, когда я чего-то не понимаю.get_Range и set_Range это тоже самое, что и Range[индекс]. Просто раньше индексаторы в C# не поддерживались, их ввели позже для удобства использования коллекций из COM-объектов.
поэтому лучше дополнительную проверку делатьСпасибо!
Причем пишет еще до запуска отладки. Если знаете, посоветуйте пожалуйста, как это решить.присвойте при объявлении им null и компилятор успокоится
присвойте при объявлении им null и компилятор успокоитсяСпасибо, помогло!
Спасибо, помогло!Если любопытно, то можно еще кстати через #pragma warning