在添加检查语句时编译错误“没有select大小写的情况”

这是重命名文件。 大多数文件有一定的字符长度,所以我可以很容易地修改它们。 一个长度虽然是相似的。 我正在尝试添加另一个检查,以查看单元格是否是MID(LEN函数)之后的所有数字。

当我添加IsNumeric(-(Mid(aCell, 2, Len(aCell) - 5)))检查时,出现编译时错误:

没有select案例的案例

我哪里错了?

下面的工作正常:

 Case 13 Check = Left(aCell, 1) If Check = "e" Then 'Existing Standard val = "S-" & Left(aCell, Len(aCell) - 13) & Mid(aCell, 2, Len(aCell) - 10) & "-" & Mid(aCell, 5, Len(aCell) - 9) Else 'Standard after page 9 val = "S-" & Left(aCell, Len(aCell) - 10) & "-" & Mid(aCell, 4, Len(aCell) - 9) End If Check = "" 

我试图在这个代码中添加上面的Case 13代码。

  Check = IsNumeric(-(Mid(aCell, 2, Len(aCell) - 5))) If Check = True Then 'Existing Three Line Diagrams val = "S-" & Mid(aCell, 3, Len(aCell) - 10) & "-" & Mid(aCell, 6, Len(aCell) - 9) 

完整代码:

 Option Explicit Sub Convert() Application.ScreenUpdating = False Dim rng As Range, aCell As Range Dim val As String, Check Dim LastRow As Long LastRow = Range("A" & Rows.Count).End(xlUp).Row Set rng = Range("A2:A" & LastRow) For Each aCell In rng.Cells Select Case Len(aCell) Case 12 Check = Left(aCell, 1) If Check = "0" Or Check = "c" Or Check = "e" Then 'Three Line Diagram val = "S-" & Mid(aCell, 2, Len(aCell) - 9) & "-" & Mid(aCell, 5, Len(aCell) - 8) Else 'Standard val = "S-" & Left(aCell, Len(aCell) - 9) & "-" & Mid(aCell, 4, Len(aCell) - 8) End If Check = "" Case 13 '|||Problem Area||| 'Check = IsNumeric(-(Mid(aCell, 2, Len(aCell) - 5))) 'If Check = True Then 'Existing Three Line Diagrams 'val = "S-" & Mid(aCell, 3, Len(aCell) - 10) & "-" & Mid(aCell, 6, Len(aCell) - 9) 'Else Check = Left(aCell, 1) If Check = "e" Then 'Existing Standard val = "S-" & Left(aCell, Len(aCell) - 13) & Mid(aCell, 2, Len(aCell) - 10) & "-" & Mid(aCell, 5, Len(aCell) - 9) Else 'Standard after page 9 val = "S-" & Left(aCell, Len(aCell) - 10) & "-" & Mid(aCell, 4, Len(aCell) - 9) End If Check = "" Case 14 'Existing Standard after page 9 val = "S-" & Left(aCell, Len(aCell) - 14) & Mid(aCell, 2, Len(aCell) - 11) & "-" & Mid(aCell, 5, Len(aCell) - 10) Case 15 'SD Standard val = "SD-" & Left(aCell, Len(aCell) - 15) & Mid(aCell, 5, Len(aCell) - 12) & "-" & Mid(aCell, 8, Len(aCell) - 12) Case 16 'Reference or Removal val = Left(aCell, Len(aCell) - 9) & "-" & (Mid(aCell, 8, Len(aCell) - 12)) Case 17 'Reference or Removal after page 9 val = Left(aCell, Len(aCell) - 10) & "-" & (Mid(aCell, 8, Len(aCell) - 13)) On Error GoTo whoa Case Else 'All other pages val = "_Mod " & Left(aCell, Len(aCell) - 4) End Select val = UCase(val) val = val & " " & aCell.Offset(, 2) & aCell.Offset(, 3) aCell.Offset(, 1).Value = val Next Call RemoveZero Call RemoveBadChar Range("C1").Select Worksheets("Rename").Columns("B").AutoFit Application.ScreenUpdating = True whoa: Application.ScreenUpdating = True Exit Sub End Sub 

有了这个代码,你需要额外的End If

 Case 13 Check = IsNumeric(-(Mid(aCell, 2, Len(aCell) - 5))) If Check = True Then 'Existing Three Line Diagrams val = "S-" & Mid(aCell, 3, Len(aCell) - 10) & "-" & Mid(aCell, 6, Len(aCell) - 9) Else Check = Left(aCell, 1) End If '''' THIS WAS MISSING If Check = "e" Then 'Existing Standard val = "S-" & Left(aCell, Len(aCell) - 13) & Mid(aCell, 2, Len(aCell) - 10) & "-" & Mid(aCell, 5, Len(aCell) - 9) Else 'Standard after page 9 val = "S-" & Left(aCell, Len(aCell) - 10) & "-" & Mid(aCell, 4, Len(aCell) - 9) End If Check = "" Case 14 .... 

目前,你有If / Else / If / Else ,如果没有End If,那么在第二次If之前。 (或者,当然,将该块更改为If / ElseIf / ElseIf / ... / End If或类似的东西)。