VBA:在userform初始化时没有命中Userform初始化方法 - UserForm.UserForm_Activate解决方案不起作用

时间:2017-08-25 10:33:10

标签: excel-vba vba excel

我的工作表上有一个按钮,点击后我有一个指定的宏调用userform.show。见下文:

phrase(g3,['(',1,'+','(',1,'+',1,')',')']).

我已经在帖子上方添加了UserForm.UserForm_Activate。

首先我在UserForm.UserForm_Activate上遇到错误运行时错误' 424' :需要对象。

此外,在我的用户表单中,我有:

phrase(g3,['(',1,'+','(',1,'/',1,')',')']).

我用来填充组合框值&它没有发生

在用户表单上,我有其他命令按钮代码点击提交表单结果,只有当用户表单初始化时组合框获取数据时,它才会正常。

1 个答案:

答案 0 :(得分:0)

您可以在您的范围内循环并在ComboBox中添加值,如下所示:

Private Sub UserForm_Initialize()
    Dim rng As Range
    Dim SelectedRange As Range
    Dim LastRow As Long
    Dim sh As Worksheet

    Set sh = ThisWorkbook.Sheets("SITES")
    LastRow = sh.Range("B" & Rows.Count).End(xlUp).Row
    Set SelectedRange = sh.Range("G2:G" & LastRow)

    ComboBox1.Clear

    For Each rng In SelectedRange
        ComboBox1.AddItem rng.Value
    Next rng

End Sub

此代码将根据B列在工作表中设置动态范围。正如我在原始代码中看到的那样,您需要G列中的值。因此,SelectedRange获取G列中的值并将其放入ComboBox。