【发布时间】:2020-05-22 23:28:41
【问题描述】:
我尝试使用数组值循环不同的场景来动态更改表单中标签的标题值。我正在插入一个 sn-p 的屏幕截图,其中我成功地将连接值打印到即时窗口。其中的内容与我在代码中需要的内容完全一样。但是,虽然我可以 debug.print 这些连接的字符串值,但一旦我删除 debug.print,我的代码中的所有内容都会横向移动。我在这里遗漏了一些东西,但我已经花了整个上午的大部分时间试图思考它是什么而没有结果。
我只是连接“Me.lbl”+myProdArr 的元素+“Sales.Caption”+“=”+“销售/成本/应付数组的元素 >"
我这样做是为了代替输入每个最后一个的需要,以便我可以干掉代码。这是可能的还是我在做梦?
Dim SalesCap, CostCap, PayableCap As String
Dim SalesObj, CostObj, PayableObj As Object
For i = LBound(myProdArr) To UBound(myProdArr)
SalesCap = "Me.lbl" & myProdArr(i) & "Sales.Caption"
CostCap = "Me.lbl" & myProdArr(i) & "Cost.Caption"
PayableCap = "Me.lbl" & myProdArr(i) & "Payable.Caption"
If Me.DealType = "Used" Then
Debug.Print SalesCap & " = " & """" & myUsedSalesArr(i) & """"
Debug.Print CostCap & " = " & """" & myUsedCostArr(i) & """"
Debug.Print PayableCap & " = " & """" & myUsedPayArr(i) & """"
Else
Debug.Print SalesCap & " = " & """" & myNewSalesArr(i) & """"
Debug.Print CostCap & " = " & """" & myNewCostArr(i) & """"
Debug.Print PayableCap & " = " & """" & myNewPayArr(i) & """"
End If
Next i
有什么想法吗?
【问题讨论】:
-
你能把你的代码贴在一个代码块中,而不仅仅是截图吗?
-
需要注意的是,你做的是一个包含代码的字符串。从字符串到可以运行的代码的唯一方法是使用 VBAProject 模型动态编辑代码。默认情况下,从不需要、不鼓励和禁用此功能。
-
您要做的是遍历控件集合并对控件本身进行操作。请参阅此示例:stackoverflow.com/questions/3344649/…
-
我应该自己使用实际控件的数组吗?那行得通吗?而不是试图将所有内容都切碎并仅仅更改控件名称的非重复部分?
-
控件集合就是这个东西,它已经存在了。你只是使用它。 docs.microsoft.com/en-us/office/vba/api/access.controls