Сегодня я изучаю vba, я новичок и у меня есть несколько вопросов о коде и о том, как он написан. Я скачал пример и пытаюсь это понять. Я знаю несколько понятий C. Я также хочу сказать, что я не являюсь носителем языка, и заранее прошу прощения за любую ошибку на английском языке.
Вот код:
Set rg = Worksheets("TabPaciente").Range("Paciente")
i = 0
glQtdPaciente = 0
Do While rg.Cells(i + 3, 1) <> ""
i = i + 1
Loop
glQtdPaciente = i
ReDim mPaciente(glQtdPaciente)
p = Worksheets("TabFila").Range("p")
InstCheg = 0
For i = 1 To glQtdPaciente
mPaciente(i).CodPaciente = rg.Cells(i + 2, 1)
If Rnd < p Then
mPaciente(i).PriorPaciente = 1
Else
mPaciente(i).PriorPaciente = 2
End If
mPaciente(i).IntvChegDistr = rg.Cells(i + 2, 2)
mPaciente(i).Par1 = rg.Cells(i + 2, 3)
mPaciente(i).Par2 = rg.Cells(i + 2, 4)
mPaciente(i).Par3 = rg.Cells(i + 2, 5)
mPaciente(i).Par4 = rg.Cells(i + 2, 6)
Теперь у меня есть несколько вопросов, и я буду рад, если кто-нибудь сможет мне помочь.
Когда я пишу
Set rg = Worksheets("TabPaciente").Range("Paciente")
1-й) Форма теперь каждый раз, когда написано rg.somethingelsehere, он будет выбирать рабочий лист "TabPaciente" и диапазон "Paciente"? Это похоже на концепцию #define в C?
Do While rg.Cells(i + 3, 1) <> ""
2-й) Так как rg был «определен», как вопрос выше этой строки, я могу понять, как «Перейти к рабочему листу TabPaciente и выбрать диапазон Paciente, а также выбрать ячейки (строка, столбец)? Что насчет этого <> ""
не понимаю, это идея.
If Rnd < p Then
mPaciente(i).PriorPaciente = 1
Else
mPaciente(i).PriorPaciente = 2
End If
3-й) Что означают mPaciente (i) и PriorPaciente? Я имею в виду их концепцию, это как Worksheet и Range, я так не думаю, потому что у меня нет Worksheet с именем mPaciente.
Заранее спасибо за помощь.