VBA IF 单元格 VALUE LENGTH 标准
VBA IF cell VALUE LENGTH criteria
我有一个代码:
IF s LIKE "UZL.*" AND s LIKE "*.ENG" THEN
它评估单元格值是否以“UZL”开头。并以“.ENG”结尾,但我想将第二个条件“.ENG”更改为单元格长度 =16 个符号。所以就像
If s Like "UZL.*" And cell value length =16 Then
有人可以说一下它的代码是什么吗?
完整代码:
Dim vDB As Variant
Dim rngDB As Range
Dim s As String, sReplace As String
Dim i As Long
Dim Ws As Worksheet
Set Ws = Sheets("BOM")
On Error Resume Next
Worksheets("BOM").ShowAllData
With Ws
Set rngDB = .Range("E2", .Range("E" & Rows.Count).End(xlUp))
End With
vDB = rngDB
For i = 1 To UBound(vDB, 1)
s = vDB(i, 1)
If s Like "UZL.*" And s Like "*.ENG" Then
sReplace = Me.LanguageBox.Value
s = Replace(s, "ENG", sReplace)
vDB(i, 1) = s
End If
Next i
rngDB = vDB
我不是这方面的超级专家,但我相信你可以使用 LEN 函数来获取文本长度。
我相信这应该有效:
If s Like "UZL.*" And Len(s.value) = 16 Then
更新:
我已经在本地进行了测试,如果 s 变量实际上是一个字符串,len 函数应该没问题:
Sub Teste()
s = "test"
'First test
If s Like "tes*" And Len(s) >= 4 Then
Debug.Print "First Test: OK"
End If
'Second test
If s Like "tes*" And Len(s) < 4 Then
Debug.Print "Second Test: OK"
Else
Debug.Print "Second Test: NOK"
End If
End Sub
控制台输出:
- 第一次测试:好的
- 第二次测试:不合格
我有一个代码:
IF s LIKE "UZL.*" AND s LIKE "*.ENG" THEN
它评估单元格值是否以“UZL”开头。并以“.ENG”结尾,但我想将第二个条件“.ENG”更改为单元格长度 =16 个符号。所以就像
If s Like "UZL.*" And cell value length =16 Then
有人可以说一下它的代码是什么吗?
完整代码:
Dim vDB As Variant
Dim rngDB As Range
Dim s As String, sReplace As String
Dim i As Long
Dim Ws As Worksheet
Set Ws = Sheets("BOM")
On Error Resume Next
Worksheets("BOM").ShowAllData
With Ws
Set rngDB = .Range("E2", .Range("E" & Rows.Count).End(xlUp))
End With
vDB = rngDB
For i = 1 To UBound(vDB, 1)
s = vDB(i, 1)
If s Like "UZL.*" And s Like "*.ENG" Then
sReplace = Me.LanguageBox.Value
s = Replace(s, "ENG", sReplace)
vDB(i, 1) = s
End If
Next i
rngDB = vDB
我不是这方面的超级专家,但我相信你可以使用 LEN 函数来获取文本长度。
我相信这应该有效:
If s Like "UZL.*" And Len(s.value) = 16 Then
更新:
我已经在本地进行了测试,如果 s 变量实际上是一个字符串,len 函数应该没问题:
Sub Teste()
s = "test"
'First test
If s Like "tes*" And Len(s) >= 4 Then
Debug.Print "First Test: OK"
End If
'Second test
If s Like "tes*" And Len(s) < 4 Then
Debug.Print "Second Test: OK"
Else
Debug.Print "Second Test: NOK"
End If
End Sub
控制台输出:
- 第一次测试:好的
- 第二次测试:不合格