如何在VBA用户表单中添加动态标签并分配特定的单元格值?

时间:2017-08-28 12:54:28

标签: excel-vba vba excel

在下面的代码中,我在用户窗体上单击“保存”按钮时添加标签“dLblQty”。并且需要在按钮按下的每次迭代中为此按钮分配来自单元格A27然后是A28的值,依此类推。 但是这会给运行时错误“438”:对象不支持此属性或方法。 请建议正确的方法。

以下是摘录:

Dim strCap As String

strCap = Worksheets("Tax Invoice - Intra State").Range("A1").Value

Dim dLblQty As Control
Set dLblQty = UserForm1.Controls.Add("Forms.Label.1", "dLblQty", True)
With dLblQty
    .Top = 20
    .Left = 20
    .MultiLine = True
    .Height = 100
    .Caption = strCap
End With

2 个答案:

答案 0 :(得分:0)

抛出错误,因为Label控件没有multiline属性或方法。片段的其余部分功能完美。

答案 1 :(得分:0)

代码在删除多行和enterkey行为时肯定没有错误,因为这些是文本框属性。但这并没有解决我添加动态标签并动态为其分配单元格值的问题。

尝试几次之后,我明白我做错了什么。 我将我的标签声明为MSForms.label类的对象,这就是诀窍。以下是解决方案:

Dim strCap As String
Dim dLblItem As MSForms.Label

strCap = Worksheets("Tax Invoice - Intra State").Range("B1").Value

Set dLblItem = UserForm1.Controls.Add("Forms.Label.1", "dLblItem", True)
With dLblItem
    .Top = 20
    .Left = 20
    '.MultiLine = True
    '.EnterKeyBehavior = True
    .Height = 100
    .Caption = strCap
    .BackColor = &HFF&
    .ForeColor = &H8000&
End With