Excel VBA IF语句-循环遍历列A,并在所有行仅以字母E、S开头时执行

Excel VBA IF语句-循环遍历列A,并在所有行仅以字母E、S开头时执行,excel,vba,Excel,Vba,也许有人知道,如果A列中的所有名称都必须以E和S字母开头,我如何借助VBA进行检查 列中的名称必须以该字母开头,然后代码将进一步运行,如果名称仅以S或E开头,或者包含以任何其他字母开头的名称,则应显示msgbox并停止脚本 如果有人能帮我找到一种通过VBA代码实现的方法,我将不胜感激 我有下面的代码,但它不能像预期的那样工作 lastrowowow = Workbooks(LatestFile).Sheets(1).Columns("A").Cells.Find("

也许有人知道,如果A列中的所有名称都必须以E和S字母开头,我如何借助VBA进行检查

列中的名称必须以该字母开头,然后代码将进一步运行,如果名称仅以S或E开头,或者包含以任何其他字母开头的名称,则应显示msgbox并停止脚本

如果有人能帮我找到一种通过VBA代码实现的方法,我将不胜感激

我有下面的代码,但它不能像预期的那样工作

 lastrowowow = Workbooks(LatestFile).Sheets(1).Columns("A").Cells.Find("*", SearchOrder:=xlByRows, LookIn:=xlValues, SearchDirection:=xlPrevious).Row 
     For x = 1 To lastrowowow + 1
    If Left(Workbooks(LatestFile).Sheets(1).Cells(x, 1).Value, 1) = "S" Or Left(Workbooks(LatestFile).Sheets(1).Cells(x, 1).Value, 1) = "E" Then
    If lastrowowow = 1 Then
    AUbeg = 2
    Exit For
            End If
    If Left(Workbooks(LatestFile).Worksheets("Sheet1").Cells(x, 1).Value, 1) = "S" Then
            AUbeg = x
            Exit For
            End If
            
            If (Workbooks(LatestFile).Worksheets("Sheet1").Cells(x, 1).Value, 1) = "E" Then
            AUbeg = x
            Exit For
            End If

一个选项,使用
选择案例

Dim ws As Worksheet
Set ws = Workbooks(LatestFile).Sheets(1)
...
Dim rng As Range
Set rng = ws.Range("A1:A" & lastrowowow) 'I am not sure why you are adding 1 in your snippet

Dim cell As Range
For Each cell In rng
    Select Case Left$(cell.Value, 1)
        Case "E", "S"
            ' keep processing cell
        Case Else
            MsgBox "Bad value in row " & cell.Row
            Exit Sub
    End Select
Next

如果你有代码,请用它提问,而不是在评论中发表。@BigBen-我下面有这样的代码,但它会检查A列是否包含以E或S开头的名称,如何修改它,以确保所有名称都以E开头,而不仅仅是其中一个字母?@BigBen-所以yeah code是编辑问题中的代码,但它检查列中的名称是否以S或E开头,但是我需要A列中的名称以E和S字母开头,即以
E
S
开头,你的意思是这些名字以
ES
开头吗?@BigBen不幸的是,不,它应该像“编辑”、“出售”、“擦除”、“星期六”—然后它就确定了,脚本不知怎么地不起作用了,可能需要定义LastRowOW,这就是为什么有一个
,你应该在其中插入决定
LastRowOW
的现有代码。我使用了我的问题中的一个:LastRowOW=工作簿(最新文件).Sheets(1).Columns(“a”).Cells.Find(“*”,SearchOrder:=xlByRows,LookIn:=xlValues,SearchDirection:=previous).划船,但不划船result@Bignen成功了!!只要LastRowOW=ws.Columns(“A”).Cells,就将LastRowOW变暗。查找(“*”,搜索顺序:=xlByRows,查找:=xlValues,搜索方向:=xlPrevious)。行Msgbox告诉我哪个单元格是“坏值”!:)我将把这段代码添加到脚本的其余部分,并检查它是如何工作的:)@Bigben-如果满足“Case-Else”,我如何停止整个脚本的运行?代码运行良好,但是我把它添加到整个脚本的中间,如果在报告中有一个坏的值,它不会显示我的MSGBOX,但是代码会继续运行…(