VBA сомневается новичка - PullRequest
       4

VBA сомневается новичка

0 голосов
/ 21 ноября 2010

Сегодня я изучаю 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.

Заранее спасибо за помощь.

1 Ответ

1 голос
/ 21 ноября 2010

1: А. Да. B. #define предназначен для создания значимого имени константы, RG - это ссылка на объект.

2:

Do While rg.Cells(i + 3, 1) <> ""

Loop

Все, что находится между первой строкой и ключевым словом Loop, будет повторяться до тех пор, пока не будет соблюден критерий rg.Cells (i + 3, 1) <> "". <> означает не равно или противоположность =. «» означает, что ячейка пуста.

3: Код, который вы отображаете, отображается только при переопределении mPaciente, поэтому я не смогу сказать вам, что это за тип. Сделайте для него поиск во всем примере кода, и вы сможете увидеть, что это такое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...