【问题标题】:For Loop with a named object带有命名对象的 For 循环
【发布时间】:2016-11-18 02:06:28
【问题描述】:

我有 200 个标签(旧版控制工具)已链接到 Excel 电子表格。我想使用 For 循环来填充这 200 个标签,而无需为每个单独命名的标签编写 200 行代码。

目前,我正在使用以下代码行来引入 excel 单元格数据:
ThisDocument.A0.Caption = exWb.Sheets("宏").Cells(1, 1)

我想迭代“A0”部分(这是 1 个标签的名称)。

我已经知道如何迭代 Cells(1,1)。

【问题讨论】:

    标签: vba for-loop label ms-word


    【解决方案1】:

    循环遍历所有控件,直到找到一个 Label 控件,然后分配 exWb.Sheets("Macro").Cells(iRow, 1).Value 的值。将 iRow 加 1,然后循环,直到找到下一个 Label 控件,等等。

    Dim lbl As Control
    Dim iRow as Integer
    iRow = 1
    
    For Each lbl In Me.Controls
        If TypeOf lbl Is MSForms.Label Then
                lbl.Caption = exWb.Sheets("Macro").Cells(iRow, 1).Value
                i = i + 1
        End If
    Next lbl
    

    【讨论】:

    • 感谢您的回复!我觉得我快到了,但这是我的问题。我需要它用一个值填充其中一个标签,然后移动到下一个要填充的标签。最后,我需要 200 个唯一标签。上面的代码似乎将所有 200 个标签更改了 200 次,因此所有标签到最后都是相同的。
    • 第一个代码包含故障保护,已被删除。希望这对你有用。
    • 您只有 200 个标签吗?因为此代码将更新所有标签。除非他们都被命名为“A”?例如,然后我们可以添加一行以使用If InStr(lbl.Name, "A") 过滤名为“A0”、“A1”等的标签,希望这对您有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-07
    • 1970-01-01
    • 2021-11-25
    • 2017-03-13
    • 1970-01-01
    相关资源
    最近更新 更多