首页 > 解决方案 > VBA UserForm 使用带有数字的动态名称范围编辑条目

问题描述

老用户,第一次发帖。我对 Excel 中的 EDIT 用户表单有疑问。我有一个用户表单,可让您将有关项目的信息输入到运行良好的数据库中。每个条目都添加到表格的底部。它看起来像这样:

数据库的小样本

等等。每个项目都是唯一的,但客户名称、客户经理和项目经理可以重复,所以我需要使用项目 ID 供用户在编辑时选择。

我希望 EDIT 项目按钮要求用户选择他们想要编辑的项目 ID。我有一个组合框使用的动态范围。我正在尝试验证组合框是否正常工作。我正在关注一个 youtube 教程。本教程基本上通过使用 msg 框返回用户选择的值来验证。我不断收到运行时错误 1004 在使用时找不到匹配函数Application.WorksheetsFunction.Match。如果我取出WorksheetsFuctionand just have Application.Match,我会收到数据类型不匹配错误。我读了一条评论,有人说他们将 targetrow 变量从整数更改为 double 并且有效,但它对我不起作用。有人有想法么?

现在代码是:

Private Sub EditProjectButton_Click()


Dim TargetRow As Integer

TargetRow = Application.Match(ProjectLineDropDown, Sheets("MetricsTracking").Range("Menu_Control"), 0)

MsgBox TargetRow

ProjectLineDropDown是用户输入要编辑的项目 ID 的组合框的名称。这个组合框的工作原理是它只显示 1 - 但是有很多项目。这是基于一个命名范围,Menu_Control它使用偏移命令和一个计算有多少行数据的公式。

我希望 msg 框返回用户输入的相同值,以便我可以确认工作正常。

这是我遵循的教程,到目前为止效果很好。教程中的人使用数据库中的名称作为编辑的查找,我使用的是一个数字,我知道问题出在哪里,但我无法弄清楚。

https://www.youtube.com/watch?v=qKf0Gbn0N5Y

任何帮助表示赞赏!

标签: excelvbaedituserform

解决方案


推荐阅读