vba - 其他语句混淆

标签 vba excel

If trigger = "Reconcile" Then
    If InStr(XXlist, checkmi) > 0 Then
          If checkmi = "XX1000" Then
            a = a + 1
            Call XX1000Check(location, a, checkmi)
          End If
          If checkmi = "XX1001" Then
            Call XX1001Check(location, checkmi)
          End If
          Else: Call SenseCheck(location, location2, location7, checkmi)
    End If
End If

我希望我的代码检查 Checkmi等于硬编码代码之一(XX1000,XX1001),然后调用适当的 VBA 代码。但是,如果该特定代码没有特定的 VBA 模块,我希望它调用通用 SenseCheck .目前它执行SenseChec k 如果初始条件 If InStr(XXlist, checkmi) > 0错了,这不是我想要的。而且我不完全确定如何解决这个问题。

最佳答案

这可能是 SELECT...CASE 语法的好地方

      SELECT CASE checkmi 
         CASE "XX1000" 
               a = a + 1
               Call XX1000Check(location, a, checkmi)
         CASE "XX1001" 
               Call XX1001Check(location, checkmi)
         CASE ELSE
               SenseCheck(location, location2, location7, checkmi)
      END SELECT

关于vba - 其他语句混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49078971/

相关文章:

excel - 两次关闭工作簿时的奇怪行为

vba - 用户窗体 - 添加停止按钮

excel - 高于指定值的所有行的 VBA 公式

excel - 使用 Excel VBA : wait for the page to fully load 使用 XML HTTP 请求抓取网站

vba - 如何在 Excel VBA 中使用输入框过滤数据透视表

excel - 字符计数然后修剪

VBA - 将行打印到 .txt 文件

excel - 如何在 VBA 项目中创建新的 Excel 工作表并创建给定名称

VBA - 运行时错误 1004 'Application Defined or Object Defined Error'

c# - 使用断言比较两个 excel 文件