我试图在我的VBA中使用下面的代码,但是它不起作用,我有很多包含HFMWO123455 ect的单元格,数字一直在变化。任何帮助表示赞赏。
If ((.Cells(K, "E").Value = "HFMWO*")) Then
J = J + 1
.Rows(K).EntireRow.Copy Destination:=Worksheets("Facilities").Range("A" & J + 1)
.Rows(K).EntireRow.Delete
End If
答案 0 :(得分:0)
有两种简单的方法。如果仅检查字符串中是否存在子字符串,请尝试以下操作:
If Instr(SearchString, target) then
' Do stuff
End If
或者,您也可以使用“赞”:
If SearchString LIKE "*" &target & "*" Then
'Do stuff
End If
答案 1 :(得分:0)
通配符比较需要Like
运算符。
If .Cells(K, "E").Value LIKE "HFMWO*" Then
J = J + 1
.Rows(K).EntireRow.Copy _
Destination:=Worksheets("Facilities").Range("A" & J + 1)
.Rows(K).EntireRow.Delete
End If
答案 2 :(得分:0)
您可以尝试:
Option Explicit
Sub test()
Dim j As Long, k As Long
With ThisWorkbook.Worksheets("Sheet1") '<- Change sheet name to fit your needs
If InStr(1, .Cells(k, "E").Value, "HFMWO", vbTextCompare) > 0 Then
j = j + 1
.Rows(k).EntireRow.Copy Destination:=Worksheets("Facilities").Range("A" & j + 1)
.Rows(k).EntireRow.Delete
End If
End With
End Sub
注释:
答案 3 :(得分:0)
您应该为此使用Like运算符。
'Public Sub StringLike()
' Dim K As Long: K = 1
' Dim J As Long: J = 1
' With ActiveSheet.UsedRange
If .Cells(K, "E").Value Like "HFMWO*" Then
J = J + 1
.Rows(K).EntireRow.Copy Destination:=Worksheets("Facilities").Range("A" & J + 1)
.Rows(K).EntireRow.Delete
End If
' End With
'End Sub
请注意,我添加了一些行以使代码可测试,但是注释掉了它们,因为在插入文件时不需要它们。
顺便说一句,将来,请在您的问题中包含此类代码示例,以便于测试。