excel - 我在这段代码中遗漏了什么:“否则没有 if 错误”?
问题描述
我正在尝试运行此代码,该代码首先声明wsD
然后WsS
依赖于“数据”选项卡中的单元格。我不断得到一个
else 没有 if 错误。
Set wsD = ThisWorkbook.Sheets("Data")
If wsD.Range("C4") = "AL" Then Set wsS = ThisWorkbook.Sheets("AL_Sim")
ElseIf wsD.Range("C4") = "COLL" Then Set wsS = ThisWorkbook.Sheets("COLL_Sim")
ElseIf wsD.Range("C4") = "COMP" Then Set wsS = ThisWorkbook.Sheets("COMP_Sim")
ElseIf wsD.Range("C4") = "GL" Then Set wsS = ThisWorkbook.Sheets("GL_Sim")
ElseIf wsD.Range("C4") = "EPL" Then Set wsS = ThisWorkbook.Sheets("EPL_Sim")
ElseIf wsD.Range("C4") = "LAW" Then Set wsS = ThisWorkbook.Sheets("LAW_Sim")
ElseIf wsD.Range("C4") = "POL" Then Set wsS = ThisWorkbook.Sheets("POL_Sim")
End If
Next
解决方案
该If
语句有两种合法语法。
排队:
If {bool-expression} Then {statement}
并阻止:
If {bool-expression} Then
{statements}
End If
因此,如果关键字后面的同一行上有语句Then
,VBA 会将If
语句解析为内联语法。
因此,由于语句是完整的,下一个以开头的语句ElseIf
对编译器来说没有意义:有一个“没有 if 的 else”。
推荐阅读
- angular - 斯巴达克斯上的嵌套面包屑
- github - 从 github 模板中获取 PR 编号
- java - spring.jpa.properties.hibernate.jdbc.time_zone 应用于写入而不是读取?
- azure-cosmosdb - Cosmos DB 索引是否默认范围?
- asp.net-mvc - 找不到 IdentityServer4 的 DiscoveryClient
- xcode - 在 macOS Catalina 和 Xcode 11 上安装 Cilk Plus 编译器时出错
- ios - 如何为日期选择器覆盖 iOS 暗模式样式
- jquery - JQuery MouseUp 在单个 MouseUp 上触发两个鼠标事件
- jquery - 显示动态创建的 div 在其他 div 中动态创建
- r - 如何在不删除整行的情况下删除 na