ArrayIndexOutOfBoundsException
означает, что вы пытаетесь получить доступ к индексу массива, который не существует или не связан с границей этого массива. Индексы массива начинаются с 0 и заканчиваются на длину - 1.
В вашем случае
for(int i = 0; i<=name.length; i++) {
System.out.print(name[i] +'\n'); // i goes from 0 to length, Not correct
}
ArrayIndexOutOfBoundsException
происходит, когда вы пытаетесь получить доступ к элементу index.length, который делает не существует (индекс массива заканчивается на -1). просто заменяя & lt; = с & lt; решит эту проблему.
for(int i = 0; i < name.length; i++) {
System.out.print(name[i] +'\n'); // i goes from 0 to length - 1, Correct
}
Вы можете изменить свою единственную строку .Copy/Destination
на это, чтобы получить специальные значения «Копировать / Вставить».
Worksheets("datasheet").Range(dataRow).Copy
Worksheets("BOM").Range(bomRow).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Примечание: вам нужно Application.CutCopyMode = False
отменить выбор диапазона копирования.
ОДНАКО, вам совсем не нужно Copy
. Просто установите значения ячеек в ячейки так же:
Worksheets("BOM").Range(bomRow).Value = Worksheets("datasheet").Range(dataRow)