VBA Spreadsheet使用spreasheet中的5个下拉框挑选10个托运人之一

我有一个Excel电子表格,用户操作5个下拉菜单,select他们应该使用的10个运输选项中的哪一个。

我正在使用VBA编写结果的函数。 对于第二次和第三次下降,我需要它检查两个约六个州的名单。 如果两个州都出现在同一张清单上,我希望它根据他们打开的清单来selectshipperAshipperB 。 什么是最简单的方法来做到这一点? 谢谢!

代码如下:

Function shipperPicker(o, oS, dS, w, p, d) As String If w = "Under 150" Then shipperPicker = "FedEx Ground" ElseIf o = "Store" And d = "Under 75 Miles" Then shipperPicker = "Matrix" ElseIf w = "Under 150" And p = "Samples" Then shipperPicker = "Fedex Ground, $10 per 3 samples" ElseIf w = "Under 150" And p = "Molding" Then shipperPicker = "FedEx Ground, $20" ElseIf w = "Over 8 000" Then shipperPicker = "Chasity in transportation" ElseIf p = "Laminate, Vinyl, 5/8 inch Bamboo" Then shipperPicker = "FedEx Freight" ElseIf oS = "foo" Then shipperPicker = "foo 2" ElseIf dS = "foo" Then shipperPicker = "foo 3" ElseIf d = "foo" Then shipperPicker = "foo 4" Else shipperPicker = "Call store for prefered shipper and Quote" End If End Function 

像这样的东西应该工作:

 Function shipperPicker(o, oS, dS, w, p, d) As String Dim rngA As Range, rngB As Range Set rngA = ThisWorkbook.Sheets("states").Range("A1:A6") Set rngB = ThisWorkbook.Sheets("states").Range("B1:B6") If w = "Under 150" Then shipperPicker = "FedEx Ground" ElseIf o = "Store" And d = "Under 75 Miles" Then shipperPicker = "Matrix" ElseIf w = "Under 150" And p = "Samples" Then shipperPicker = "Fedex Ground, $10 per 3 samples" ElseIf w = "Under 150" And p = "Molding" Then shipperPicker = "FedEx Ground, $20" ElseIf w = "Over 8 000" Then shipperPicker = "Chasity in transportation" ElseIf p = "Laminate, Vinyl, 5/8 inch Bamboo" Then shipperPicker = "FedEx Freight" ElseIf Not rngA.Find(oS, LookIn:=xlValues, lookat:=xlWhole) Is Nothing And _ Not rngA.Find(dS, LookIn:=xlValues, lookat:=xlWhole) Is Nothing Then shipperPicker = "ShipperA" ElseIf Not rngB.Find(oS, LookIn:=xlValues, lookat:=xlWhole) Is Nothing And _ Not rngB.Find(dS, LookIn:=xlValues, lookat:=xlWhole) Is Nothing Then shipperPicker = "ShipperB" ElseIf d = "foo" Then shipperPicker = "foo 4" Else shipperPicker = "Call store for prefered shipper and Quote" End If End Function