首页 > 解决方案 > 如何更改列表框高度属性?

问题描述

当我调试(按F8)时,列表框的高度会根据代码而变化。

当我使用F5运行代码时,高度调整为 1 个列表成员高度。

我最后也尝试使用.IntegralHeight=True,这就是为什么它是代码中的注释。

Ps.:我使用变量检查运行代码,直到Opções_povoarsub 结束,.Height属性为 200

用户窗体属性

在此处输入图像描述

在此处输入图像描述

Private Sub UserForm_Initialize()

Call Opções_povoar

End Sub

Private Sub Opções_povoar()

Dim arr As Variant, i As Long
arr = ActiveSheet.UsedRange

With UserForm1.ListBox1
    .List = arr
    Debug.Print .ListCount
    .ListIndex = -1
    .ListStyle = fmListStylePlain
    .Font.Size = 20
    .Top = 50
    .IntegralHeight = False
    .Height = 200 '.Font.Size * .ListCount
    '.IntegralHeight = True

    Debug.Print .Height
    '****ajustar automaticamente a altura da lista

End With

End Sub

标签: excelvba

解决方案


您可能必须给用户窗体时间来赶上代码。

Private Sub UserForm_Initialize()

    Call Opções_povoar

End Sub

Private Sub Opções_povoar()

    Dim arr As Variant, i As Long
    arr = ActiveSheet.UsedRange
    With UserForm1.ListBox1
        .List = arr
        Debug.Print .ListCount
        .ListIndex = -1
        .ListStyle = fmListStylePlain
        .Font.Size = 20
        .Top = 50
        .IntegralHeight = False
        '--------------------------------
        Application.Wait (Now + TimeValue("0:00:01"))
        '----------------------------------
        .Height = 200                            '.Font.Size * .ListCount
        '.IntegralHeight = True


        Debug.Print .Height
        '****ajustar automaticamente a altura da lista

    End With


End Sub

推荐阅读