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

我正在尝试创build一个用户窗体,允许用户更新存储在特定表单中的问题(称为问题列表)。 我使用数据validation构build了一个下拉列表,允许用户从列表中select唯一的问题名称。 我在该下拉菜单旁边创build了一个button,打开了用户窗体并正确导入了从下拉列表中标识的问题名称。

我需要弄清的是,当用户表单被启动后,我如何在我的问题列表表单中search列B,并确定哪一行包含用户select的问题,并填充用户表单的字段发现问题清单表CX行。

我一直在尝试使用的是一个索引匹配函数,但是在获取代码的工作中并没有成功。 我一直在使用的一个例子是:

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 

你会使用:

 Worksheets("Issue List").Range("X2:X1000") 

而不是:

 'Priority Table'!I35 

只要使用:

 Worksheets("Priority Table").Range("I35") 

请注意,您也可以通过名称来引用范围,这可以使编码更容易,也更安全。 在电子表格中插入行时,Excel不会自动更新任何VBA代码中的范围。 对I35的引用将永远是I35。

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

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

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

 Range("Issue") 

(如果它是一个全局variables,只要它是工作簿中的唯一名称,那么它就是默认variables,您不需要使用表格(“优先表”)限定符。

有关如何从VBA引用Excel范围的更多信息,请参阅此文档: https : //msdn.microsoft.com/en-us/library/office/gg192736(v= office.14) .aspx