选择案例编译错误之外的案例
Posted
技术标签:
【中文标题】选择案例编译错误之外的案例【英文标题】:Case outside Select Case Compile Error 【发布时间】:2017-12-15 00:34:17 【问题描述】:我是编码新手,正在寻求帮助。我这里有一个代码给我“选择案例之外的案例”错误,但我的案例在“选择案例”和“结束选择”之内,所以我不确定我做错了什么。
Sub codematch()
Dim wbk As Workbook
Select Case response = MsgBox("Is the cursor in the first cell of the column?", vbYesNo, "Code Finder")
Case condition1
If response = 6 Then
Set wbk = Workbooks.Open("C:\test.xlsm")
Call wbk
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],'[test.xlsm]Sheet1'!C1:C2,2,0)"
Do Until ActiveCell = ""
Call wbk.Close(False)
Case condition2
If response = 7 Then
response = MsgBox("Position the Cursor in the correct location and try again", vbOKOnly)
End If
End Select
End Sub
【问题讨论】:
在Case condition2
之前缺少End If
即使您修复了If
,Select Case
也无法正常工作。 (好吧,它可能“有效”,但我怀疑它是否会按照您的想法进行。)变量response
(0
?) 将与您的MsgBox
的结果进行比较。如果response
与MsgBox
匹配,那么如果condition1
计算结果为True
,它将执行第一种情况,或者如果condition1
是False
并且condition2
是True
,它将执行第二种情况。如果response
与MsgBox
不同,那么如果condition1
计算结果为False
,它将执行第一种情况,或者如果condition1
是True
和condition2
是False
,则执行第二种情况.
你需要学习select case
语句的用法。 ...它的工作方式与您想象的不同........如果您知道它的作用,您将不会在 case
语句中包含 if
语句
【参考方案1】:
坦率地说,你的大部分代码都是毫无意义的。谁在乎用户的光标在哪里。
Sub codematch()
dim target as range
set target = range("B1") 'or whever you want to start
Dim wbk As Workbook
Set wbk = Workbooks.Open("C:\test.xlsm")
Target.FormulaR1C1 = "=VLOOKUP(RC[-1],'[test.xlsm]Sheet1'!C1:C2,2,0)"
do
set target = target.offset(1,0)
target.offset(-1,0).copy target
loop until target.offset(0,-1)=""
target.clear
target.parent.columns(target.column).cells.formula =
_target.parent.columns(target.column).cells.value 'convert to values
wbk.close false
end sub
我认为你正在尝试做的事情
【讨论】:
以上是关于选择案例编译错误之外的案例的主要内容,如果未能解决你的问题,请参考以下文章