需要帮助将INDEX和MATCH与动态命名范围一起使用

时间:2010-10-11 16:04:33

标签: excel vba excel-vba

您好我有2个ListBox(Purchase_Select_Debtor)&具有txtBox for Price(txtPrice)的Userform上的(Purchase_Select_Quantity)。

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

下面是我当前的代码,它工作正常,但每次我添加一个新的Debtor时,我必须改变代码来改变物理范围。

我想使用动态命名范围进行设置,因此当我添加新债务时,索引/匹配功能仍将返回结果。

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)

我尝试了这个,但它没有用;键入Missmatch运行时错误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)

调试器突出显示这两行代码;

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

Temp的值=“”

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

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

动态命名范围如下;

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

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

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

我认为动态命名范围有问题,因为它不会返回结果,任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:1)

詹姆斯

这假设您在A列中有一个标题和至少一行数据,并且动态范围只有一列宽:

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