在组合框中选择值以在Excel VBA /用户窗体中打开另一个工作表

时间:2016-04-23 15:39:00

标签: excel-vba vba excel

如何在从组合框中选择值后应用其他方法? 我在工作表“主页”中有一个名称列表,对于范围“C”中的每个名称,它们是链接的单个工作表,其中包含图像中提到的该名称的信息。

Excel sheet picture

我做了一个包含组合框的用户表单和一些引用用户名信息的标签,当我从组合框中选择用户名时,我需要excel将打开该用户名的页面并检索信息从那里。

Userform

另外,我在“主页”页面中选择名称时遇到问题。我用过这段代码

Iterator localIterator = getCommands().iterator();
while(localIterator.hasNext() && i < length)

{
    Command cmd = (Command)localIterator.next();
    String[] alias2;
    length = (alias2 = cmd.getAlias()).length;
    i = 0;
    continue;

    String aliases = alias2[i];
    Utils.addChatMessage(aliases);
    if (aliases.equalsIgnoreCase(alias)) {
        return cmd;
    }
    i++;
}

但它显示了对象' - 工作表'失败的方法'范围'。

这是我的命令按钮“导入”

的代码
cboUserList.List = wsHome.Range("c12", Range("c12").End(xlDown)).Value

1 个答案:

答案 0 :(得分:0)

让代码工作的一个想法:将wsHome添加到第二个范围。 cboUserList.List = wsHome.Range("c12", wsHome.Range("c12").End(xlDown)).Value

要填充ComboBox,请尝试使用cboUserList.AddItem(<String>)。遍历您的范围以将所有元素放入ComboBox。或者尝试使用包含.List名称的数组。

要切换到用户的工作簿,您必须在 userform 代码中使用这段代码:

Private Sub cboUserList_Change()
     Worksheets(Cstr(wsHome.Range("c12", wsHome.Range("c12").End(xlDown)).Find(cboUserList.Value, LookIn:=xlValues).Offset(0, 1).Value)).Activate
End Sub