2015-10-14 2 views
0

Я пытаюсь пропустить указанные рабочие листы в книге и назначить метки и т. Д. Я получаю сообщение «Ошибка времени выполнения» 9 «Подзаголовок вне диапазона. Вот код, который я использую .. .Looping через указанные листы

Sub Labels() 

Dim intStartRow As Integer 
Dim intRowCount As Integer 
Dim intRow As Integer 
Dim WshtNames As Variant 
Dim intSheet As Variant 

intStartRow = 32 

WshtNames = Array("shtAngola", "shtBotswana", "shtMozambique", "shtNamibia", "shtSA", "shtZambia", "shtZimbabwe", "shtEritrea", "shtEthiopia", "shtKenya", "shtRwanda", "shtTanzania", "shtUganda", "shtAlgeria", "shtEgypt", "shtMorocco", "shtTunisia", "shtGhana", "shtIvoryCoast", "shtMauritius", "shtNigeria", "shtSenegal") 

For Each intSheet In WshtNames 

    With Worksheets(intSheet) 

     For intRowCount = 7 To 21 
      For intRow = 1 To 3 
       .Cells(intStartRow, 1) = shtSelections.Cells(intRowCount, 1) 

Был бы очень признателен за вашу помощь.

Бест, Адам

+2

Мое предположение было бы проблемой правописание, кажется, скорее всего, судя по огромным SheetName массива, котор вы сделали. Дважды проверьте правильность написания. Ошибки вне диапазона для меня обычно означают, что я написал что-то неправильно или я пытаюсь выполнить итерацию по столбцу или номеру строки 0, которые не существуют. – WouldBeNerd

+0

Также вы должны, вероятно, показать, где в вашем коде определен «shtSelections». – WouldBeNerd

+0

Согласитесь с @WouldBeNerd, но Err 9 также будет выброшен, если эти листы находятся в другой книге, чем ваша активная, поэтому убедитесь, что установлен родительский элемент «Worksheets». – Ambie

ответ

0

возможно вы связать строку с обозначением флага. Таким образом, вы используете второй автоматический вар в цикле. intRowCount inst объявление intStartRow.

.Cells (intRowCount, 1) = shtSelections.Cells (intRowCount, 1)