excel - VBA IF 语句 - 遍历列 A 并在所有行仅以字母 E 、 S 开头时执行
问题描述
如果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
解决方案
一种选择,使用Select Case
:
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
推荐阅读
- oracle - 如何备份 OBIEE12c 的 RPD 和 Catalog?
- python - 如何实现组合搜索?
- mongodb - SvelteKit With MongoDB ReferenceError: global is not defined
- javascript - webpack HotModuleReplacementPlugin 是如何工作的,它有什么作用?
- javascript - 无效的挂机呼叫全栈开放 2021 电话簿
- python - 安装 mysqlclient 后在 django 中加载 mysqldb 模块时出错
- sql - SELECT FROM WHERE char 列与混合字符串和整数值抛出转换失败将 varchar 转换为数据类型 int
- javascript - 使用提交按钮实时搜索
- c# - 如何拥有不同数据类型的getter和setter
- c# - 如何在动作中使用对象的参数