-1

在下面的代码中,我有错误,因为索引超出了数组的范围。即使这个代码完成了正确地将单元格复制到列中..有没有人帮助我

string[] array = { "F3", "J3", "N3", "R3", "V3", "Z3", "AD3", "AH3", "AL3", "AP3" };
string[] arrayb={"C","G","K","O","S","W","AA","AE","AI","AM"};  


int a1count = arrayb.Length;
int b = 0;

for ( int a=0; a<= a1count; a++) 
{
 Excel.Range sourceRange = xlWorkSheet.get_Range(array[a]); 
 Excel.Range destinationRange = xlWorkSheet.UsedRange.Columns[arrayb[b]];
 sourceRange.Copy(Type.Missing);  
 destinationRange.PasteSpecial(Microsoft.Office.Interop.Excel.XlPasteType.xlPasteFormulas,   
 Microsoft.Office.Interop.Excel.XlPasteSpecialOperation.xlPasteSpecialOperationNone, false, false);
 b++;
}
4

3 回答 3

1
for ( int a=0; a<= a1count; a++) 

应该

for ( int a=0; a< a1count; a++) 

由于索引从 0 开始。例如,对于长度为 10 的数组,索引将从 0 到 9,而不是从 0 到 10。

于 2013-03-01T05:56:38.150 回答
1
for ( int a=0; a<= a1count-1; a++)
{
}
于 2013-03-01T05:56:41.093 回答
0

它应该是

for ( int a=0; a < a1count; a++) 

不是

for ( int a=0; a<= a1count; a++) 

你得到索引超出范围,因为数组从 0 开始到 length-1 尝试使用 foreach编码的一些最佳实践

于 2013-03-01T06:06:01.923 回答