Новости:

Теперь на форум можно залогиниться / зарегистрироваться с помощью ВКонтакте. Уже существующие пользователи могут связать свою учетную запись с аккаунтом ВКонтакте одним кликом в профиле пользователя http://forum.msexcel.ru/index.php?action=profile;area=account

Главное меню

подскажите по макросу

Автор guzovets, 27.07.2011, 17:49

« назад - далее »

guzovets

Sub test()

Dim A(0 To 29) As Long
A(0) = 5
A(1) = 14
A(2) = 15
A(3) = 16
A(4) = 17
A(5) = 18
A(6) = 19
A(7) = 27
A(8) = 28
A(9) = 29
A(10) = 33
A(11) = 34
A(12) = 48
A(13) = 53
A(14) = 54
A(15) = 56
A(16) = 57
A(17) = 58
A(18) = 59
A(19) = 63
A(20) = 72
A(21) = 73
A(22) = 75
A(23) = 77
A(24) = 78
A(25) = 79
A(26) = 82
A(27) = 83
A(28) = 84
A(29) = 87


For Numst = 5 To 35 Step 1
For i = 0 To 29 Step 1

   Range("K" & Numst).Select
   ActiveCell.FormulaR1C1 = _
   "='D:путь к файлу[01.xls]лист1'!R" & A(i) & "C5"

Next i
Next Numst

End Sub

во всех ячейках одно значение A(29)
как исправить чтобы в каждой ячейке новой строки было значение из массива?

nilem

Во вложенном цикле у вас перебирается весь массив, и всегда используется последний элемент этого массива. Так попробуйте:
Sub test()
Dim A(29) As Long, i As Long
A(0) = 5: A(1) = 14: A(2) = 15: A(3) = 16: A(4) = 17: A(5) = 18
A(6) = 19: A(7) = 27: A(8) = 28: A(9) = 29: A(10) = 33: A(11) = 34
A(12) = 48: A(13) = 53: A(14) = 54: A(15) = 56: A(16) = 57: A(17) = 58
A(18) = 59: A(19) = 63: A(20) = 72: A(21) = 73: A(22) = 75: A(23) = 77
A(24) = 78: A(25) = 79: A(26) = 82: A(27) = 83: A(28) = 84: A(29) = 87
For i = 0 To 29
   Range("K" & i + 5).FormulaR1C1 = _
   "='D:\путь к файлу\[01.xls]Лист1'!R" & A(i) & "C5"
Next i
End Sub

guzovets

спасибо огромное.
а можно еще как-нибудь, чтобы имена файлов тоже в цикле прибавлялись 01.xls, 02.xls .... 63.xls ?

nilem

Вот, например:
Sub test()
Dim A(29) As Long, i As Long, j As Long, s As String
A(0) = 5: A(1) = 14: A(2) = 15: A(3) = 16: A(4) = 17: A(5) = 18
A(6) = 19: A(7) = 27: A(8) = 28: A(9) = 29: A(10) = 33: A(11) = 34
A(12) = 48: A(13) = 53: A(14) = 54: A(15) = 56: A(16) = 57: A(17) = 58
A(18) = 59: A(19) = 63: A(20) = 72: A(21) = 73: A(22) = 75: A(23) = 77
A(24) = 78: A(25) = 79: A(26) = 82: A(27) = 83: A(28) = 84: A(29) = 87
For j = 1 To 63
    s = "='D:\путь к файлу\[" & Format(j, "00") & ".xls]Лист1'!R"
    For i = 0 To 29
        Cells(i + 5, j + 10).FormulaR1C1 = s & A(i) & "C5"
    Next i
Next j
End Sub