VBA - 基于用户输入 - 在表中查找值



我创建了一个表单,要求输入两个用户,站点位置和SKU。站点位置是一个下拉列表,SKU 是一个文本框。在它下面有一个文本框,我想在用户点击"我的价格是多少?"按钮后根据用户输入填充该文本框。

我有一个价格矩阵,其中 SKU 在第 B 列中,站点在第 1 行顶部,它们各自的价格在矩阵中(D-H 列(。 我附上了表格的样本。请注意,"SKU"和"网站"标题不会在我的实际矩阵中。

定价表

我需要帮助在用户表单中编码"我的价格是多少?"按钮。

我觉得好像我需要使用某种查找的 if 语句,但我对如何启动代码有点迷茫。

以下是您必须执行的操作:

  • 从站点字段中读取值;
  • 从 SKU 字段中读取值;
  • 使用以下公式在"您的价格为"字段中显示匹配项:

    工作表函数索引(范围,站点字段,SKU 字段(

更多关于 WorksheetFunction.Index 的信息:https://msdn.microsoft.com/en-us/library/office/ff197581.aspx<</p>

div class="one_answers">

您需要在行和列上独立使用Application.Match,然后获取相应的单元格。请尝试以下代码,但将控件的名称(txtSku、cmbSite(和工作表的代码名称 (mySheet( 替换为你的代码。

Sub WhatsMyPrice_Click()
  Dim rowNum, colNum
  rowNum = Application.Match(txtSku.Value, MySheet.Range("B:B"), 0)
  If IsError(rowNum) Then MsgBox "SKU not found": Exit Sub
  colNum = Application.Match(cmbSite.Value, MySheet.Rows(2), 0)
  If IsError(rowNum) Then MsgBox "Site not found": Exit Sub
  txtPrice.Value = MySheet.Cells(rowNum, colNum).Value2
End Sub

相关内容

  • 没有找到相关文章

最新更新