我创建了一个表单,要求输入两个用户,站点位置和SKU。站点位置是一个下拉列表,SKU 是一个文本框。在它下面有一个文本框,我想在用户点击"我的价格是多少?"按钮后根据用户输入填充该文本框。
我有一个价格矩阵,其中 SKU 在第 B 列中,站点在第 1 行顶部,它们各自的价格在矩阵中(D-H 列(。 我附上了表格的样本。请注意,"SKU"和"网站"标题不会在我的实际矩阵中。
定价表
我需要帮助在用户表单中编码"我的价格是多少?"按钮。
我觉得好像我需要使用某种查找的 if 语句,但我对如何启动代码有点迷茫。
以下是您必须执行的操作:
- 从站点字段中读取值;
- 从 SKU 字段中读取值;
-
使用以下公式在"您的价格为"字段中显示匹配项:
工作表函数索引(范围,站点字段,SKU 字段(
更多关于 WorksheetFunction.Index 的信息:https://msdn.microsoft.com/en-us/library/office/ff197581.aspx<</p>
您需要在行和列上独立使用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