Command2
Text1.Item(0)
Text1.Item(2)
Text2
Text1.Item(0)
Text1.Item(2)
Command1这样会重复打印的。
对于每个ControlX.Name=text1的时候,都会做个循环,对于这一点,是不是还能改进呢?
Text1.Item(0)
Text1.Item(2)
Text2
Text1.Item(0)
Text1.Item(2)
Command1这样会重复打印的。
对于每个ControlX.Name=text1的时候,都会做个循环,对于这一点,是不是还能改进呢?
解决方案 »
- 将查询的数据导出到Excel中,自动显示EXCEL
- 在VB中怎么引用word中的透明图标?
- 在程序中如何模拟用户按键CTRL+"+"
- 关于SQL查询
- 谁有dll文件的详细解释
- 再线求教?在一个窗体内的VB程序执行顺序
- VB6开发的ERP,没有源代码,想知道窗体读取的是哪一个表,有什么方法吗?sqlserver数据库
- 关于控制excel的问题~!!!!!!!!!!!~~~~
- 我最好再问一次啦!怎么在同一个COMBOBOX框里实现不同的项目(每个item的forecolor)有不同的颜色 !!如果再没有人回答的话我可真要怀疑这里的啦???
- 用vb开发Dcom,有什么要注意的,还有
- 怎样实现播放多个mp3文件 还有就是那个多选对话框
- 用open打開文本文件,再寫到另一個文件時,有些字符全變了,是什么原因?
Dim x As VB.Control
For Each x In Me.Controls
If VBA.VarType(VBA.CallByName(Me, x.Name, VbGet)) = vbObject Then '控件数组
Debug.Print x.Name & ".Item(" & x.Index & ")"
Else
Debug.Print x.Name
End If
Next x
End Sub
并不大,相反CallByName每次都要用到IDispatch接口其性能等同于
后期绑定调用。所以,还是应该用错误捕获,如下:Private Sub Command1_Click()
Dim x As VB.Control
On Error GoTo Err_Collection
For Each x In Me.Controls
Debug.Print x.Name & ".Item(" & x.Index & ")"
Next
On Error GoTo 0
Exit Sub
Err_Collection:
Debug.Print x.Name
Resume Next
End Sub
即使不想用错误捕获,也可以用下面的方法。这是试出来的,有个问题
我还没有想出是为什么,如下:Private Sub Command3_Click()
Dim x As VB.Control
For Each x In Me.Controls
' Debug.Print VBA.VarType(x)
If VarType(x) = vbString Then '控件数组
Debug.Print x.Name & ".Item(" & x.Index & ")"
Else
Debug.Print x.Name
End If
Next x
End Sub调试代码中的VarType对于控件数组里的对象返回8即vbString,而对一般控制
返回11即vbBoolean。不知这是为什么,还请高手指教。
上面的代码都在我的VB上测试通过,不会是因为我的VB有问题吧!