Excel как узнать ключевое слово в предложении

#excel

#excel

Вопрос:

Я хочу выяснить, есть ли в предложении нужное мне слово, например, я хочу знать, есть ли «яблоко» в «У меня есть яблоко».

Ниже приведен код, Sub test()

 LastRow_Sheet1 = Worksheets("Sheet1").UsedRange.Rows.Count
LastRow_Sheet2 = Worksheets("Sheet2").UsedRange.Rows.Count

For x = 2 To LastRow_Sheet1

    po_number = Worksheets("Sheet1").Cells(x, 7).Value
    site_name = Worksheets("Sheet1").Cells(x, 1).Value

    For y = 2 To LastRow_Sheet2
        If po_number <> Worksheets("Sheet1").Cells(y, 1).Value Then
        With Worksheets("Sheet2") 
            If InStr(1, CStr(site_name), .Cells(y, 30)) >= 1 Then
                .Range(.Cells(y, 1), .Cells(y, 31)).Copy
                nextRow = Sheets("Sheet3").Cells(Sheets("Sheet3").Rows.Count, 1).End(xlUp).Row   1
                Sheets("Sheet3").Range("A" amp; nextRow).PasteSpecial
            End If
          End With
        End If
    Next
Next
  

End Sub

И по какой-то причине If InStr(1, CStr(site_name), .Cells(y, 30)) >= 1 Then не работает .., и я уверен, что тип Cells(y, 30) является строкой, кто-нибудь может сказать мне, что произойдет?

Большое спасибо!!

Джимми

Ответ №1:

Просто измените порядок параметров:

 If InStr(1, .Cells(y, 30), CStr(site_name)) >= 1 Then
  

Комментарии:

1. Найдите описание функции. Если вы ищете строку в другой строке, вы всегда задаете два параметра: стог сена и гвоздь (тот, который вы ищете, и тот, который вы ищете). Вы не найдете строку «У меня есть яблоко» внутри строки «яблоко», она в нее не вписывается.