-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 から 10 ではなく 0 から 9 になります。

于 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 から長さ 1 まで始まるため、範囲外のインデックスを取得します foreach を使用してみてくださいコーディングのベスト プラクティス

于 2013-03-01T06:06:01.923 に答える