C# ';操作员'*';无法应用于类型为';系统。共对象';和';双倍'';?
我尝试使用Convert.ToInt32,但它不起作用,我收到的“运算符”*“无法应用于”System.\u ComObject“和”int“类型的操作数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
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);
}