为什么这样做:
((Excel.Worksheet)Application.ActiveSheet).get_Range("A1", "A1").Value2 = text;
Run Code Online (Sandbox Code Playgroud)
但这不是:
Excel.Worksheet activeSheet = ((Excel.Worksheet)Application.ActiveSheet);
activeSheet.Cells[0, 0] = text;
Run Code Online (Sandbox Code Playgroud)
我需要第二种方式,因为我需要使用rowIndex和colIndex循环.我怎样才能做到这一点?
我收到错误:
mscorlib.dll中发生未处理的"System.Runtime.InteropServices.COMException"类型的异常附加信息:来自HRESULT的异常:0x800A03EC
Pau*_*ter 13
您唯一缺少的是(除了使用基于1的索引之外)是将单元格引用显式地转换为范围:
Excel.Worksheet activeSheet = ((Excel.Worksheet)Application.ActiveSheet);
int endRow = 5;
int endCol = 6;
for(int idxRow = 1; idxRow <= endRow; idxRow++)
{
for(int idxCol = 1; idxCol <= endCol; idxCol)
{
((Excel.Range)activeSheet.Cells[idxRow, idxCol]).Value2 = "Kilroy wuz here";
}
}
Run Code Online (Sandbox Code Playgroud)