Arrays Access 2013:使用变量引用具有VBA的对象
我试图用VBA做一个循环,检查不同的访问字段(名为“区域”)是否正确 如果三个区域为真,我的Sub应返回它们的名称(即“Area、Area F、Area G”) 问题是,我得到一个错误:“编译错误。类型不匹配。”在下面显示的行中,第二个“&”突出显示Arrays Access 2013:使用变量引用具有VBA的对象,arrays,vba,object,ms-access,reference,Arrays,Vba,Object,Ms Access,Reference,我试图用VBA做一个循环,检查不同的访问字段(名为“区域”)是否正确 如果三个区域为真,我的Sub应返回它们的名称(即“Area、Area F、Area G”) 问题是,我得到一个错误:“编译错误。类型不匹配。”在下面显示的行中,第二个“&”突出显示 Set chkObject = "[Forms]![1110 Datos]![Area_" & Area(i) & "]" 以下是一些现有对象(复选框): [Forms]![1110达托]![Area_Cnc] [Forms]![
Set chkObject = "[Forms]![1110 Datos]![Area_" & Area(i) & "]"
以下是一些现有对象(复选框):
[Forms]![1110达托]![Area_Cnc]
[Forms]![1110达托]![Area_Emb]
[Forms]![1110达托]![区域]
这是我的密码:
Sub MySub()
Dim Area() As String, Vars As String, i As Integer, chkObject As Object
Dim strAreas As String
Vars = "Cnc, Emb, Ens, Esp, Fer, For, Maq, Pin, Pon, Sie, Sol, Tel, Rou"
Area = Split(Vars, ", ")
strAreas = "" 'Set blank.
For i = 0 To UBound(Area)
Set chkObject = "[Forms]![1110 Datos]![Area_" & Area(i) & "]" 'Reference to the Object.
If chkObject.Value = True Then
If strAreas = "" Then 'Check if it is the first Area: "Cnc" OR "Esp"...
strAreas = Area(i)
Else
strAreas = strAreas & ", " & Area(i) 'To add commas if already exists one checked: "Cnc, Esp, Sie"
End If
End If
If strAreas = "" Then 'If no Areas were checked...
Debug.Print "Ningún area estaba activa."
Else
Debug.Print strAreas 'Else, return selected Areas
End If
Next
End Sub
有人知道如何引用这个吗
提前谢谢 这是工作代码,谢谢你,蒂姆:
Sub MySub()
Dim Area() As String, Vars As String, i As Integer, chkObject As Object
Dim strAreas As String
Vars = "Cnc, Emb, Ens, Esp, Fer, For, Maq, Pin, Pon, Sie, Sol, Tel, Rou"
Area = Split(Vars, ", ")
strAreas = ""
For i = 0 To UBound(Area)
Set chkObject = Forms("1110 Datos").Controls("Area_" & Area(i))
If chkObject.Value = True Then
If strAreas = "" Then
strAreas = Area(i)
Else
strAreas = strAreas & ", " & Area(i)
End If
End If
Next
If strAreas = "" Then
Debug.Print "Ningún area estaba activa."
Else
Debug.Print strAreas
End If
End Sub
您不需要将“Set”关键字作为chkObject seams作为字符串
Forms(“1110 Datos”)。控件(“Area_u”和Area(i))。值
它可以正常工作!谢谢!