Я очень новичок в VBA и понимаю только основные принципы, поэтому это может быть невозможно с кодом, который я использовал. У меня есть код для нахождения значения в Sheet1 с использованием диапазона от Sheet2, который вставляет строку entiore в Sheet3. Как я могу изменить его так, чтобы он по-прежнему вставлял строку, основанную на подобном значении, а не точное совпадение, поэтому вставьте строку, если «Company Ltd» была в Sheet1, и только компания находилась в диапазоне. Я пробовал подстановочные заявления, но не могу заставить их работать с диапазоном. Может кто-то указать мне верное направление?VBA, находящие значения из диапазона и вставки
Option Compare Text
Sub Find_Values()
Dim c1 As Range, rng1
Dim c2 As Range, rng2
Dim lastrow As Long
Set rng1 = Range("sheet1!a1:a10")
Set rng2 = Range("sheet2!a1:a10")
For Each c2 In rng2
For Each c1 In rng1
If c1 = c2 Then
c1.EntireRow.Copy
Sheets("sheet3").Activate
lastrow = Cells(Rows.Count, "a").End(xlUp).Row
Range("a" & lastrow + 1).Select
ActiveSheet.Paste
End If
Next c1
Next c2
End Sub
Спасибо
Те же предупреждения, что и в ответе Сэма: убедитесь, что вы включили первый параметр 'InStr (1, c1, c2)', а не 'InStr (c1, c2)' – FreeMan
На самом деле вам не нужно; попробуй. Первый параметр является необязательным, и если вы используете строку в качестве первой и второй, она игнорируется. – user1274820
Подпись метода - это 'InStr ([start], string, substring, [compare])', '[]' обозначает необязательный. – Sam