Как исправить ошибку «OleAut сообщил о несоответствии типов» при использовании Countif в C#? - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь использовать функцию COUNTIF в столбце B (CustomerName) в таблице «Продукты». Но я получаю ошибку. Может кто-нибудь помочь, почему я получаю ошибку и как ее исправить. Огромное спасибо. enter image description here enter image description here

void Duplicate()
        {
            int ketqua = 1;
            Double t;
            GetActiveExcelFile();
            Excel.Worksheet esh = oWB.Worksheets["Order detail"];            
            long lastRow;
            lastRow = esh.Cells[esh.Rows.Count, 2].End(Excel.XlDirection.xlUp).Row;
            Excel.Application a = new Excel.Application();
            if (lastRow == 55)
                for (int i = 2; i <= lastRow; i++)
                {
                    Excel.Range objRange = (Excel.Range)esh.Cells[i, 2];
                    String strData = objRange.get_Value(System.Type.Missing).ToString(); //get the value cell[i,2]
                    if (strData != "")
                    {
                        t = a.WorksheetFunction.CountIf(esh.get_Range("B2","B55"), strData);
                        if (t > 1)
                        {
                            ketqua = 1;
                            break;
                        }
                        else
                            ketqua = 0;
                    }
                }            
        }

Ответы [ 2 ]

0 голосов
/ 07 апреля 2020
  1. Всегда использовать объекты или диапазоны в Excel

// t = a.WorksheetFunction.CountIf (e sh .get_Range ("B2", "B55"), strData );

t = a.WorksheetFunction.CountIf (e sh .get_Range ("B2", "B55"), (Excel.Range) e sh .Cells [i, 2]);

Язык ОС против числового формата использует числовой формат по умолчанию в вашей системе
0 голосов
/ 01 апреля 2020

Мне кажется, это когда вы создали новое приложение Excel.Application. Вот в чем была моя проблема. Вы ссылаетесь на уже объявленный лист, доступный для нового приложения. Я новичок в кодировании, надеюсь, это поможет.

...