如何正确使用昏暗

时间:2015-07-31 11:57:37

标签: vba excel-vba excel

我在excel VBA中整理了一个代码。我不是,但是现在已经学习了一段时间,但是我一边学习。我已经在互联网上搜索了很多关于何时声明变量,字符串或整数的信息。但我还没有完全明白。使用下面的代码,我成功地能够执行,而无需声明任何变量。如果我使用Dim var1 to dim var100 or is this just not doing anything

,我可以使用的问题
Var1 = frmdriverstep1.Labelpa54.Caption
Var2 = frmdriverstep1.Labelza54.Caption
Var3 = frmdriverstep1.ComboBoxga54.Text
Var4 = frmdriverstep1.ComboBoxna54.Text
Var5 = frmdriverstep1.a54label.Caption


DBFullName = "H:\*************.accdb"

Cs1 = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
    "Data Source=" & DBFullName & ";" & _
    "Persist Security Info=False;"

Set CnnConn = New ADODB.Connection
CnnConn.Open Cs1
'zone1
If Var1 >= "0" Then
Set Rst1 = New ADODB.Recordset
Rst1.Open "Zone1", CnnConn, adOpenKeyset, adLockOptimistic, adCmdTable
Rst1.AddNew
Rst1.Fields("Audit_Date") = vardate
Rst1.Fields("Sequence") = varseq
Rst1.Fields("Style") = vartrim
Rst1.Fields("Auditor") = varauditor
Rst1.Fields("Catagory") = "WRINKLES"
Rst1.Fields("Portion") = Var1
Rst1.Fields("Zone") = Var2
Rst1.Fields("Grade") = Var3
Rst1.Fields("Number") = Var4
Rst1.Fields("Score") = Var5
Rst1.Fields("Seat_Model") = varmodel
Rst1.update
Rst1.Close

2 个答案:

答案 0 :(得分:8)

不使用Option Explicit的真正问题是您不会被告知未声明的变量,这可能很容易导致调试噩梦。
请考虑以下代码:

SomeUndeclaredVariable= 100
Debug.Print SomeUndeclareVariable

第二行将打印0而不引发错误,并且可能需要很长时间才能意识到第二行中使用的变量名称与第一行中的变量名称不同。
此外,Variant的效率远远低于“本地人”。类型。

此外,对于Object变量,不正确地声明它们会使您免受Intellisense的好处 请注意,VBE中有一个选项可以自动在每个新模块的顶部插入Option Explicit

答案 1 :(得分:5)

除非你在模块的顶部专门有Option Explicit,否则你不需要在VBA中声明你的变量,任何未声明的变量都将被视为“Variant”类型的变量。但是,这是一个非常糟糕的编码习惯,你应该总是声明你的变量来表明它们的类型。