MrT*_*ard 3 excel vba loops function excel-vba
我正在为我的雇主制作一份自定义Excel电子表格.
我想出了一个非常讨厌的功能,它可以实现我想要的功能,但我希望能够简化它.
我很熟悉C,C#和Java.我想VBA尽可能避免使用,但如果这是我唯一的选择,我可以考虑使用它.
我正在为制造工厂制定计划表,处理订单并从库存中扣除材料等.我为工厂生产的所有产品设置了页面.每种产品都使用不同的材料.我目前有一个讨厌的if语句,它检查2个表之间的匹配字符串,然后在找到匹配时用相关信息填充其他一些单元格.
我目前有一个包含20个条件的if语句!我永远不会在真正的程序中做这样的事情!
无论如何,我可以基本上循环遍历一系列单元格,直到找到匹配然后从那里开始?这是我正在尝试做的一个例子:
选项卡:MoldInformation - 包含工厂生产的产品的所有必要信息.选项卡:订单 - 包含客户已下达的所有订单.
在Orders选项卡中,第一个单元格标题为Mold,用户将在其中输入字符串,然后在orders选项卡中,有关于生成订单所需的材料数量的信息.如果输入某个模具,则与该模具对应的材料将填充订单中的相应选项卡.
我所有的计算都很好,但我的if语句看起来像这样:
= IF(A3 = MoldInformation!$ A $ 3 E3/MoldInformation!$ F $ 3,如果(A3 = MoldInformation!一个$ 4中,E3/MoldInformation!$ F $ 4中,IF(A3 = MoldInformation!一个$ 5中,E3/MoldInformation!$ F $ 5中,IF(A3 = MoldInformation!一个$ 6中,E3/MoldInformation!$ F $ 6中,IF(A3 = MoldInformation!甲$ 7,E3/MoldInformation!$ F $ 7,IF(A3 = MoldInformation!A $ 8,E3/MoldInformation! $ F $ 8,IF(A3 =模具信息!9澳元,E3 /模具信息!F $ 9,IF(A3 =模具信息!10美元,E3 /模具信息!F $ 10,IF(A3 =模具信息!11美元,E3 /模具信息!F $ 11,IF(A3 =模具信息!12澳元,E3 /模具信息!12美元,IF(A3 =模具信息!13美元,E3 /模具信息!F $ 13,IF(A3 =模具信息!14美元,E3 /模具信息!14美元,如果(A3 =模具信息!15澳元,E3 /模具信息!F $ 15,IF(A3 =模具信息!16美元,E3 /模具信息!F $ 16,IF(A3 =模具信息!17美元,E3 /模具信息!F $ 17,IF( A3 = MoldInformation!A $ 18,E3/MoldInformation!F $ 18,IF(A3 = MoldInformation!A $ 19,E3/MoldInformation!F $ 19,IF(A3 = MoldInformation!H $ 3,E3/MoldInformation!M $ 3,IF(A3 = MoldInformation!H $ 4,E3/MoldInformation!M $ 4,IF(A3 = MoldInformation!H $ 5,E3/MoldInformation!M $ 5,IF(A3 ="","")))))))))))))))))))))
那太可怕了!无论如何,我可以基本上让它"循环"通过每个单元格,直到它找到匹配?因为它只是在一个地方寻找,然后从它找到匹配的任何行中提取信息,我相信这应该是可能的.
任何人都可以帮我解决这个问题吗?
我感谢您提供的任何帮助.如前所述,如果我可以避免使用VBA,那就太好了但是如果你们中的任何人知道如何在一个函数中完成类似的事情,我将非常感激.
提前致谢!
此致
加里
那太可怕了!
Hideous是轻描淡写:p
你的公式可以简单地写成
=IF(ISERROR(E3/VLOOKUP(A3,MoldInformation!A:F,6,0)),"",E3/VLOOKUP(A3,MoldInformation!A:F,6,0))
这将做的是,它将从MoldInformationA(来自MoldInformation)中的值匹配的Col F中找到值A3
截图

| 归档时间: |
|
| 查看次数: |
422 次 |
| 最近记录: |