Excel VBA怀疑初学者

Excel VBA怀疑初学者,excel,vba,Excel,Vba,我今天在学习vba,我是一个新手,我对代码和它是如何编写的有一些问题。我已经下载了一个例子,我正在努力理解它。我知道C的一些概念。我还想说,我不是以英语为母语的人,我为英语中的任何错误提前道歉 代码如下: Set rg = Worksheets("TabPaciente").Range("Paciente") i = 0 glQtdPaciente = 0 Do While rg.Cells(i + 3, 1) <> "" i = i + 1 Loop glQtdPaciente

我今天在学习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)
1)现在表单每次写入rg.somethingle时都会选择工作表“TabPaciente”和范围“Paciente”?这与C中的#define的概念类似吗

Do While rg.Cells(i + 3, 1) <> ""
Do While rg.Cells(i+3,1)”
第二)由于rg是“定义”的,就像这一行上面的问题一样,我可以理解为“转到工作表选项卡Paciente并选择范围Paciente,然后选择单元格(行、列)?这个
,我不明白它的意思

If Rnd < p Then
    mPaciente(i).PriorPaciente = 1
Else
    mPaciente(i).PriorPaciente = 2
End If
如果Rnd
3)mPaciente(i)和PriorPaciente是什么意思?我指的是他们的概念,它是否像工作表和范围,我不这么认为,因为我没有名为mPaciente的工作表

提前感谢您的帮助。

1:A.是的。 B.#define用于为常量命名,RG是对对象的引用

2:

Do While rg.Cells(i+3,1)”
环
在满足条件rg.Cells(i+3,1)“”之前,第一行和循环关键字之间的任何内容都将重复。means不等于,或者=。”的相反值表示单元格为空


3:您显示的代码仅在mPaciente被重新定义时显示,因此我无法告诉您它的类型。在整个代码示例中查找它,您将能够看到它是什么。

如果您每个问题只问一个问题,您就更有可能得到答案。
If Rnd < p Then
    mPaciente(i).PriorPaciente = 1
Else
    mPaciente(i).PriorPaciente = 2
End If
Do While rg.Cells(i + 3, 1) <> ""

Loop