C# ';操作员'*';无法应用于类型为';系统。共对象';和';双倍'';?

C# ';操作员'*';无法应用于类型为';系统。共对象';和';双倍'';?,c#,.net,excel,add-in,C#,.net,Excel,Add In,我尝试使用Convert.ToInt32,但它不起作用,我收到的“运算符”*“无法应用于”System.\u ComObject“和”int“类型的操作数 if(((RibbonCheckBox)发送器)。选中) { 尝试 { double cellValue=sheet.Cells[1,12].Value2; Excel.Range usedRange=sheet.usedRange; foreach(usedRange.Rows中的Excel.Range行) { for(int i=0;i

我尝试使用Convert.ToInt32,但它不起作用,我收到的“运算符”*“无法应用于”System.\u ComObject“和”int“类型的操作数

if(((RibbonCheckBox)发送器)。选中)
{
尝试
{
double cellValue=sheet.Cells[1,12].Value2;
Excel.Range usedRange=sheet.usedRange;
foreach(usedRange.Rows中的Excel.Range行)
{
for(int i=0;i
sheet.Cells[i+1,7]
是一个对象,而不是一个值。请使用
sheet.Cells[i+1,7]。值2
代替我想您在参考
sheet.Cells[i+1,7]中省略了一个
Value2
是的,你是对的,我忘记了值2。但是,在我添加值2之后,我仍然得到了相同的错误。我的错误是,我只在中添加了值2,而不是在中添加了值2。我克服了这个错误,现在Excel被卡住了,它似乎没有计算任何内容:(看起来
Value2
仍然是一个
对象
。您可能需要将其强制转换为int或其他类型。
if (((RibbonCheckBox)sender).Checked)
        {
            try
            {
                double cellValue = sheet.Cells[1, 12].Value2;
                Excel.Range usedRange = sheet.UsedRange;
                foreach (Excel.Range row in usedRange.Rows)
                {

                   for (int i = 0; i < row.Rows.Count; i++)
                   {
                        for (int j = 0; j < row.Columns.Count; j++)
                        {
                            while (sheet.Cells[i + 1, 7] != null)
                            {
                                sheet.Cells[i + 1, 8].Value2 = sheet.Cells[i + 1, 7] * Convert.ToInt32(cellValue);
                            }
                        }
                   }
                }
            }
            catch (Exception ex)
            {

                MessageBox.Show("Exceptie:" + ex);

            }