#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. Найдите описание функции. Если вы ищете строку в другой строке, вы всегда задаете два параметра: стог сена и гвоздь (тот, который вы ищете, и тот, который вы ищете). Вы не найдете строку «У меня есть яблоко» внутри строки «яблоко», она в нее не вписывается.