需要帮助使用dynamic命名范围的INDEX和MATCH

您好我有2个ListBox的(Purchase_Select_Debtor)&(Purchase_Select_Quantity)在用户表单上有一个txtBox的价格(txtPrice)。

该守则使用索引和匹配来返回基于债务人和所选数量的结果。

下面是我目前的代码工作正常,但每次我添加一个新的债务人,我不得不改变代码来改变物理范围。

我想使用dynamic命名范围进行设置,因此添加新的债务人索引/匹配函数仍然会返回一个结果。

Temp = Application.Index(Sheets("Price_list").Range("A1:I22"), _ Application.Match(Purchase_Select_Debtor.Value, Sheets("Price_list").Range("A1:A22"), 0), _ Application.Match(Purchase_Select_Quantity.Value, Sheets("Price_list").Range("A1:I1"), 0)) txtPrice.Value = FormatCurrency(Expression:=Temp, _ NumDigitsAfterDecimal:=2) 

我尝试过,但没有奏效。 types错配运行时错误13

 Temp = Application.Index(Range("Price_list_Table"), _ Application.Match(Purchase_Select_Debtor.Value, Range("Price_list_Debtor_ADD"), 0), _ Application.Match(Purchase_Select_Quantity.Value, Range("Price_list_Quantity_ADD"), 0)) txtPrice.Value = FormatCurrency(Expression:=Temp, _ NumDigitsAfterDecimal:=2) 

debugging器强调了这两行代码;

  txtPrice.Value = FormatCurrency(Expression:=Temp, _ NumDigitsAfterDecimal:=2) 

Temp的价值=“”

它用来作为参考的图表是这样的;

http://i19.photobucket.com/albums/b152/mantricorb/Chart.jpg

dynamic命名范围如下;

Price_list_Table = OFFSET(Price_list!$ A $ 1,0,0,COUNTA(Price_list!$ A:$ A),9)

(Price_list!$ A $ 1,0,0,COUNTA(Price_list!$ A:$ A),1)Price_list_Debtor_ADD = OFFSET

Price_list_Quantity_ADD = OFFSET(Price_list!$ A $ 1:$ I $ 1,0,0)

我假设dynamic命名范围有问题,因为它不返回结果,任何帮助将不胜感激。

詹姆士,

这假设你有一个头,并在列A中至less有一行数据,dynamic范围只是一列宽:

 =OFFSET(Price_list!$A$1,1,0):OFFSET(Price_list!$A$1,COUNTA(Price_list!$A:$A)-1,0)