Как перебрать массив?

Как мне перебрать массив? Идея состоит в том, чтобы перейти на рабочий лист «Имена», где у меня есть список инициалов и имен пользователей в списке. Создайте 2 массива, в которых будут записаны инициалы и имя каждого человека. Затем посчитайте, сколько человек находится на листе. (Я считаю, что счетчик необходим для завершения цикла? где начальное значение вводится каждые 3 строки, я указал в 3 раза больше общего количества) Далее перейдите к рабочему листу «LoopTest» и введите начальное значение, а также добавьте пол и возраст.

Итак, как показано ниже, мне нужно попытаться ввести начальную букву, затем в следующую строку записать «Пол», затем «Возраст». Затем возвращается к следующему инициалу (после 3 строк). Я пытаюсь добавить 1 в массив для каждого цикла, чтобы он печатал инициалы по порядку. Однако при вызове массива возникает ошибка Initial(i).

Сможет ли кто-нибудь увидеть мои ошибки?

Sub LoopTEST2()

Worksheets("Names").Activate

Dim Initial(1 To 18) As String
Dim Names(1 To 18) As String
    
    Initial(1) = Range("A2").Value
    Initial(2) = Range("A3").Value
    Initial(3) = Range("A4").Value
    
    Names(1) = Range("B2").Value
    Names(2) = Range("B3").Value
    Names(3) = Range("B4").Value

NumRows = Range("A2", Range("A2").End(xlDown)).Rows.Count


Worksheets("LoopTest").Activate

Dim i As Integer
    For i = 1 To NumRows * 3 Step 3
    Cells(i, 1).Value = Initial(i): Cells(i + 1, 1).Value = "Sex:": Cells(i + 2, 1).Value = "Age:":
    
Next i
End Sub

«Сможет ли кто-нибудь увидеть мои ошибки?» - Да, мы сможем увидеть ваши ошибки, если вы включите их в вопрос. Пожалуйста, всегда указывайте сообщение об ошибке в вопросе. Полезно понять и таким образом решить проблему.

Thomas Weller 18.07.2024 07:11

Ваша манера объяснять, что вам нужно, немного неясна, без обид. Итак, было бы хорошо отредактировать ваш вопрос и показать картинки, изображающие исходную ситуацию и то, как вам это нужно. Затем, как сказано выше, когда вы упоминаете о какой-либо ошибке, полезно показать описание ошибки, указав, в какой строке кода она возникает.

FaneDuru 18.07.2024 08:38

Не могли бы вы приложить скриншот исходных данных? Это может помочь.

CLR 18.07.2024 10:39

Вы пытаетесь объединить строки двоеточиями? Для объединения строк используется амперсанд (&). В этой строке двоеточия стоят не в тех местах.

andrewb 18.07.2024 11:00

извините всех, я мог бы объяснить, чего я хочу, лучше. @MGonet смог распознать мое отсутствие навыков письма и предоставить то, что было необходимо.

One foot in the Grave 22.07.2024 06:55
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
0
5
76
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Управляющая переменная i в цикле меняется с шагом 3, и вам нужно прочитать последовательные элементы из массива Initial. Поэтому либо используйте другую переменную, либо каждый раз вычисляйте индекс массива Initial.
Или

Dim i As Integer, j As Integer
For i = 1 To NumRows * 3 Step 3
    j = j + 1
    Cells(i, 1).Value = Initial(j)
    Cells(i + 1, 1).Value = "Sex:"
    Cells(i + 2, 1).Value = "Age:" 
Next i

Или

Dim i As Integer
For i = 1 To NumRows * 3 Step 3
    Cells(i, 1).Value = Initial(i \ 3 + 1)
    Cells(i + 1, 1).Value = "Sex:"
    Cells(i + 2, 1).Value = "Age:" 
Next i

Идеальный! Оглядываясь назад, я мог бы быть более точным в том, что спрашивал, но вариант 1 мне не удалось решить. Спасибо, MGonet!

One foot in the Grave 22.07.2024 06:53

Другие вопросы по теме