VBA - 根据两个标准

时间:2017-10-03 17:07:39

标签: vba excel-vba if-statement excel

我正在寻找一种基于两个动态值/标准创建搜索功能的解决方案。 我有一个用户表单,有一个组合框和一个文本框。

标准1来自组合框,应该在(柱构建材料)中找到。 标准2是生命周期阶段,并且可以是以下术语中的至少一个或多个:“A1-A3,A4,C1,C2,C3,C4,D”。它可以在(Column Modul)

中找到

代码的功能应该是找到全球变暖潜能值(GWP)值(参见数据表中的绿框),具体取决于建筑材料和生命周期阶段。找到此值后,应将值填充到userform中的文本框中。

我的数据表的屏幕截图和示例:

example data table

假设建筑材料“Argeton”是从组合框中选择的。 该材料具有多个条目和不同阶段,其中引起全球变暖潜势。 现在我想知道GWP值,例如“Argeton”的“A4”阶段

到目前为止,我的想法是使用if和then语句:

Dim zelle As String
Dim zelleGWPA4 As Range
Set zelle = Columns(3).Find(what:=cmb_Datensatz.Text, lookat:=xlWhole)
Set zelleGWPA4 = Columns(11).Find(what:="A4", lookat:=xlWhole)

If zelle = cmb_Datensatz.value Then zelle.Offset(0, 8).Select
....

此时,我不知道该怎么做。由于我现在只检测到橙色细胞(参见数据表),我的想法是向下搜索并寻找术语“A4”,而建筑材料仍然是“Agreton”。 一旦两个条件都为真,则转移偏移量(0,1)并在txt_GWP_A4中填充此单元格的值。

也许有更好更简单的方法来做到这一点。我对任何其他想法持开放态度并感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

你可以试试:

  • 在数据表中插入一个名为“SearchIndex”的新列
  • 列SearchIndex的值将是一个串联的字符串 要搜索的条件列的值,以。分隔 分号或管道或空格......
  • 设置zelle =列(SearchIndex列).Find(what:= cmb_Datensatz.Text &安培; “| A4”,lookat:= xlWhole)

图片中的数据示例。data example

... 你可能想要使用'worksheet.listobjects'。这可以帮助您使用列引用。