INO*_*NOH 1 excel vba excel-vba
我在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
Run Code Online (Sandbox Code Playgroud)
不使用的真正问题Option Explicit是你不会被告知未声明的变量,这可能很容易导致调试噩梦.
请考虑以下代码:
SomeUndeclaredVariable= 100
Debug.Print SomeUndeclareVariable
Run Code Online (Sandbox Code Playgroud)
第二行将打印0而不会引发错误,并且可能需要很长时间才能意识到第二行中使用的变量名称与第一行中的变量名称不同.
此外,Variant的效率远低于"原生"类型.
此外,对于Object变量,不正确地声明它们会使您免于Intellisense的好处.
请注意,VBE中有一个选项可以自动将其插入Option Explicit每个新模块的顶部.
除非你Option Explicit专门在模块的顶部,否则你不需要在VBA中声明你的变量,任何未声明的变量都将被视为"Variant"类型的变量.但是,这是一个非常糟糕的编码习惯,你应该总是声明你的变量来表明它们的类型.
| 归档时间: |
|
| 查看次数: |
198 次 |
| 最近记录: |