2010-11-20 11 views
0

私は今日vbaを学んでいます。私は初心者です。コードとその書き方についていくつか質問があります。私は例をダウンロードして、それを理解しようとしています。私はCのいくつかのコンセプトを知っています。私はネイティブスピーカーではないと言いたいと思います。英語の間違いがあれば、事前に申し訳ありません。ここでVBA疑問初心者

はコードです:

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) 

は今、私はいくつかの質問を持って、そして誰かが私を助けることができる場合、私は喜んでいると思います。私は今、毎回の上、それはワークシート「Paciente」「TabPaciente」と範囲を選択することがありますrg.somethingelsehere書かれて

Set rg = Worksheets("TabPaciente").Range("Paciente") 

第一)フォームを書く

?これはCの#defineのコンセプトに似ていますか? RGは、このライン上の質問のように私は何この<> ""については?「TabPacienteをワークシート範囲Pacienteを選択するように移動し、セルを選択(行、列)のように理解することができ、「定義された」ので

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

第二)、私はそれはアイデアだ得ることはありません。

If Rnd < p Then 
    mPaciente(i).PriorPaciente = 1 
Else 
    mPaciente(i).PriorPaciente = 2 
End If 

第三)mPacienteを(ⅰ)ないとPriorPacienteは?私は彼らの概念を意味し、ワークシートおよび範囲のようにそれをされ、私は何のワークシートを持っていないので、私はそうは思いませんどういう意味mPacienteという名前です。

ご協力いただきありがとうございます。

+0

質問ごとに1つの質問しか出さないと答えが出る可能性が高くなります。 – BenV

答えて

1

1:A.はい。 B. #defineは定数に意味のある名前を付けるためのもので、RGはオブジェクトへの参照です。

2:最初の行とループキーワード間

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

Loop 

ものは基準rg.Cells(I + 3、1)<> "" 満たされるまで繰り返されます。 <>手段が=と等しくないか、=の反対が意味します。 ""はセルが空であることを意味します。

3:表示されたコードは、mPacienteが再定義されたときに表示されるだけなので、そのタイプを示すことはできません。コード例全体でfindを実行すると、それが何であるかを見ることができます。