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