【发布时间】:2016-10-15 05:19:35
【问题描述】:
我正在尝试使用 VBA 中的 index 命令运行宏。它是关于风险矩阵中的风险变量,基于“机会”和“影响”变量。我正在创建一个工具来帮助我的组织进行风险评估。
用户为机会和效果变量(X 和 Y 轴)提供输入。应根据此输入从矩阵中选择总和。矩阵是在不同的工作表上创建的。
到目前为止,我得到了这个:
Dim ws2 As Worksheet
Set ws2 = Worksheets("RisicoMatrix")
Dim effectIniVar As Long
Dim waarschijnlijkheidIniVar As Long
Dim risicoIniVar As Long
effectIniVar = WorksheetFunction.Match(comboIniEffect, ws2.Range("A3:A10"), 0)
waarschijnlijkheidIniVar = WorksheetFunction.Match(comboIniWaarschijnlijkheid, ws2.Range("B2:I2"), 0)
risicoIniVar = Application.WorksheetFunction.Index(ws2.Range("b3:I10"), effectIniVar, waarschijnlijkheidIniVar)
前两个 Match 命令工作正常并给我正确的值,但索引行不起作用。当我运行宏时,我得到一个 runtime-13 错误,一个类型不匹配错误,并且在我调试时突出显示“索引”行。我知道这条线可能不太正确,但我不明白我在论坛上找到的例子。
我想在 VBA 中完成此操作,因为这是从表单域运行的宏。风险矩阵只是其中的元素之一。
任何帮助将不胜感激。
提前感谢您的时间和精力。
【问题讨论】:
-
您在第二个实例中似乎拼错了
Match。除此之外,您需要提供比“不起作用”更多的信息。 -
感谢您的回复。将其复制到帖子时,拼写错误滑入。不起作用的是:它给出了“runtime-13 > type mismatch”错误,并且在我调试时“index”行被标记为黄色。我知道这条线是错误的。我的问题是:如何在不使用“匹配”的情况下在 VBA 中应用“索引”?
-
那么我建议您修复代码并澄清“不起作用”的确切是什么意思。 ;)
-
再次感谢您的宝贵时间。我需要帮助修复代码,因为我不明白如何在 VBA 中使用“索引”。我解释了“不起作用”的含义。我收到运行时错误 13。
-
我的意思是修正你的问题中的错字,并在那里添加额外的信息。类型不匹配错误表明返回的值不能强制转换为 Long 数据类型。
标签: vba excel indexing excel-2010