Excel VBA-将信息拉入用户表单以进行更新

Excel VBA-将信息拉入用户表单以进行更新,vba,excel,Vba,Excel,我试图创建一个userform,允许用户更新存储在名为issueslist的特定表中的问题。我使用数据验证构建了一个下拉列表,允许用户从列表中选择唯一的问题名称。我在下拉列表旁边创建了一个按钮,它打开用户表单并正确导入下拉列表中标识的问题名称 我需要弄清楚的是,当用户表单启动时,我如何让它在我的问题列表表中搜索列B,并确定哪一行包含用户选择的问题,并使用问题列表表的行C-X中找到的信息填充用户表单的字段 我一直试图使用的是索引匹配函数,但未能成功地使代码正常工作。我一直在使用的一个例子是: Re

我试图创建一个userform,允许用户更新存储在名为issueslist的特定表中的问题。我使用数据验证构建了一个下拉列表,允许用户从列表中选择唯一的问题名称。我在下拉列表旁边创建了一个按钮,它打开用户表单并正确导入下拉列表中标识的问题名称

我需要弄清楚的是,当用户表单启动时,我如何让它在我的问题列表表中搜索列B,并确定哪一行包含用户选择的问题,并使用问题列表表的行C-X中找到的信息填充用户表单的字段

我一直试图使用的是索引匹配函数,但未能成功地使代码正常工作。我一直在使用的一个例子是:

Resolved.Value = Application.WorksheetFunction.index
('Issue List'!$X$2:$X$1000,Application.WorksheetFunction.match
('Priority Table'!I35,'Issue List'!$B$2:$B$1000,0))
任何帮助都将不胜感激


提前谢谢

在VBA中使用工作表函数时,仍然必须使用VBA语言传递范围:

因此,不是:

'Issue List'!$X$2:$X$1000
'Priority Table'!I35
您可以使用:

Worksheets("Issue List").Range("X2:X1000")
而不是:

'Issue List'!$X$2:$X$1000
'Priority Table'!I35
只需使用:

Worksheets("Priority Table").Range("I35")
请注意,您还可以按名称引用范围,这可以使编码更容易,也更安全。在电子表格中插入行时,Excel不会自动更新任何VBA代码中的范围。对I35的引用将始终是I35

相反,在Excel中为单元格I35定义一个普通名称,然后在代码中引用它

例如,如果您将I35命名为问题

您可以通过以下方式引用单元格:

Range("Issue")
如果它是一个全局变量(只要是工作簿中唯一的名称,它就是默认值),则不需要使用SheetsPriority表限定符

有关如何从VBA引用Excel中的范围的详细信息,请参阅本文档: