как объединить похожие строки кода в одну - PullRequest
0 голосов
/ 19 марта 2019

Здравствуйте и спасибо за ваше время, у меня есть этот кусок кода, который работает отлично, мне просто нужно знать две вещи:

1- Есть ли способ объединить все это в одну строку? что-то вроде Если .Cells (K, "D"). Значение = "L" или "RF", или "F", или "Dewat *", тогда

2- Как мне сказать оператору if искать "Dewat *", поскольку из-за орфографических ошибок пользователи могут вводить обезвоживание, обезвоживание, обезвоживание и т. Д.

If .Cells(K, "D").Value = "DT" Then
    J = J + 1
    .Rows(K).EntireRow.Copy Destination:=Worksheets("Trailers").Range("A" & J + 1)
    .Rows(K).EntireRow.Delete
End If

    If .Cells(K, "D").Value = "L" Then
    J = J + 1
    .Rows(K).EntireRow.Copy Destination:=Worksheets("Trailers").Range("A" & J + 1)
    .Rows(K).EntireRow.Delete
End If

    If .Cells(K, "D").Value = "RF" Then
    J = J + 1
    .Rows(K).EntireRow.Copy Destination:=Worksheets("Trailers").Range("A" & J + 1)
    .Rows(K).EntireRow.Delete
End If

    If .Cells(K, "D").Value = "F" Then
    J = J + 1
    .Rows(K).EntireRow.Copy Destination:=Worksheets("Trailers").Range("A" & J + 1)
    .Rows(K).EntireRow.Delete
End If

Ответы [ 2 ]

2 голосов
/ 19 марта 2019

Возможно, это работает ...

If ((.Cells(K, "D").Value = "DT") Or (.Cells(K, "D").Value = "L") Or (.Cells(K, "D").Value = "RF") Or (.Cells(K, "D").Value = "F")) Then
    J = J + 1
    .Rows(K).EntireRow.Copy Destination:=Worksheets("Trailers").Range("A" & J + 1)
    .Rows(K).EntireRow.Delete
End If
0 голосов
/ 19 марта 2019

Дело 1

Option Explicit

Sub test()

    If .Cells(K, "D").Value = "DT" Or .Cells(K, "D").Value = "L" Or .Cells(K, "D").Value = "RF" Or .Cells(K, "D").Value = "F" Then
        J = J + 1
        .Rows(K).EntireRow.Copy Destination:=Worksheets("Trailers").Range("A" & J + 1)
        .Rows(K).EntireRow.Delete
    End If

End Sub

Дело 2

Option Explicit

Sub test1()

    Dim UserInput As String, SearchInString As String

    With ThisWorkbook.Worksheets("Sheet1")

        UserInput = .Range("A2").Value
        SearchInString = .Range("E1").Value

        If InStr(1, UserInput, SearchInString, vbTextCompare) > 0 Then '<- Check if User Input appears in the search string & if the value is greater than 0 means that appears in the string
            MsgBox "Appears"
        End If

    End With

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...