Как найти слово в ячейке vba

Метод Find объекта Range для поиска ячейки по ее данным в VBA Excel. Синтаксис и компоненты. Знаки подстановки для поисковой фразы. Простые примеры.

Метод Find объекта Range предназначен для поиска ячейки и сведений о ней в заданном диапазоне по ее значению, формуле и примечанию. Чаще всего этот метод используется для поиска в таблице ячейки по слову, части слова или фразе, входящей в ее значение.

Синтаксис метода Range.Find

Expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

Expression – это переменная или выражение, возвращающее объект Range, в котором будет осуществляться поиск.

В скобках перечислены параметры метода, среди них только What является обязательным.

Метод Range.Find возвращает объект Range, представляющий из себя первую ячейку, в которой найдена поисковая фраза (параметр What). Если совпадение не найдено, возвращается значение Nothing.

Если необходимо найти следующие ячейки, содержащие поисковую фразу, используется метод Range.FindNext.

Параметры метода Range.Find

Наименование Описание
Обязательный параметр
What Данные для поиска, которые могут быть представлены строкой или другим типом данных Excel. Тип данных параметра — Variant.
Необязательные параметры
After Ячейка, после которой следует начать поиск.
LookIn Уточняет область поиска. Список констант xlFindLookIn:

  • xlValues (-4163) – значения;
  • xlComments (-4144) – примечания*;
  • xlNotes (-4144) – примечания*;
  • xlFormulas (-4123) – формулы.
LookAt Поиск частичного или полного совпадения. Список констант xlLookAt:

  • xlWhole (1) – полное совпадение;
  • xlPart (2) – частичное совпадение.
SearchOrder Определяет способ поиска. Список констант xlSearchOrder:

  • xlByRows (1) – поиск по строкам;
  • xlByColumns (2) – поиск по столбцам.
SearchDirection Определяет направление поиска. Список констант xlSearchDirection:

  • xlNext (1) – поиск вперед;
  • xlPrevious (2) – поиск назад.
MatchCase Определяет учет регистра:

  • False (0) – поиск без учета регистра (по умолчанию);
  • True (1) – поиск с учетом регистра.
MatchByte Условия поиска при использовании двухбайтовых кодировок:

  • False (0) – двухбайтовый символ может соответствовать однобайтовому символу;
  • True (1) – двухбайтовый символ должен соответствовать только двухбайтовому символу.
SearchFormat Формат поиска – используется вместе со свойством Application.FindFormat.

* Примечания имеют две константы с одним значением. Проверяется очень просто: MsgBox xlComments и MsgBox xlNotes.

В справке Microsoft тип данных всех параметров, кроме SearchDirection, указан как Variant.

Знаки подстановки для поисковой фразы

Условные знаки в шаблоне поисковой фразы:

  • ? – знак вопроса обозначает любой отдельный символ;
  • * – звездочка обозначает любое количество любых символов, в том числе ноль символов;
  • ~ – тильда ставится перед ?, * и ~, чтобы они обозначали сами себя (например, чтобы тильда в шаблоне обозначала сама себя, записать ее нужно дважды: ~~).

Простые примеры

При использовании метода Range.Find в VBA Excel необходимо учитывать следующие нюансы:

  1. Так как этот метод возвращает объект Range (в виде одной ячейки), присвоить его можно только объектной переменной, объявленной как Variant, Object или Range, при помощи оператора Set.
  2. Если поисковая фраза в заданном диапазоне найдена не будет, метод Range.Find возвратит значение Nothing. Обращение к свойствам несуществующей ячейки будет генерировать ошибки. Поэтому, перед использованием результатов поиска, необходимо проверить объектную переменную на содержание в ней значения Nothing.

В примерах используются переменные:

  • myPhrase – переменная для записи поисковой фразы;
  • myCell – переменная, которой присваивается первая найденная ячейка, содержащая поисковую фразу, или значение Nothing, если поисковая фраза не найдена.

Пример 1

Sub primer1()

Dim myPhrase As Variant, myCell As Range

myPhrase = “стакан”

Set myCell = Range(“A1:L30”).Find(myPhrase)

If Not myCell Is Nothing Then

MsgBox “Значение найденной ячейки: “ & myCell

MsgBox “Строка найденной ячейки: “ & myCell.Row

MsgBox “Столбец найденной ячейки: “ & myCell.Column

MsgBox “Адрес найденной ячейки: “ & myCell.Address

Else

MsgBox “Искомая фраза не найдена”

End If

End Sub

В этом примере мы присваиваем переменной myPhrase значение для поиска – "стакан". Затем проводим поиск этой фразы в диапазоне "A1:L30" с присвоением результата поиска переменной myCell. Далее проверяем переменную myCell, не содержит ли она значение Nothing, и выводим соответствующие сообщения.

Ознакомьтесь с работой кода VBA в случаях, когда в диапазоне "A1:L30" есть ячейка со строкой, содержащей подстроку "стакан", и когда такой ячейки нет.

Пример 2

Теперь посмотрим, как метод Range.Find отреагирует на поиск числа. В качестве диапазона поиска будем использовать первую строку активного листа Excel.

Sub primer2()

Dim myPhrase As Variant, myCell As Range

myPhrase = 526.15

Set myCell = Rows(1).Find(myPhrase)

If Not myCell Is Nothing Then

MsgBox “Значение найденной ячейки: “ & myCell

Else: MsgBox “Искомая фраза не найдена”

End If

End Sub

Несмотря на то, что мы присвоили переменной числовое значение, метод Range.Find найдет ячейку со значением и 526,15, и 129526,15, и 526,15254. То есть, как и в предыдущем примере, поиск идет по подстроке.

Чтобы найти ячейку с точным соответствием значения поисковой фразе, используйте константу xlWhole параметра LookAt:

Set myCell = Rows(1).Find(myPhrase, , , xlWhole)

Аналогично используются и другие необязательные параметры. Количество «лишних» запятых перед необязательным параметром должно соответствовать количеству пропущенных компонентов, предусмотренных синтаксисом метода Range.Find, кроме случаев указания необязательного параметра по имени, например: LookIn:=xlValues. Тогда используется одна запятая, независимо от того, сколько компонентов пропущено.

Пример 3

Допустим, у нас есть многострочная база данных в Excel. В первой колонке находятся даты. Нам необходимо создать отчет за какой-то период. Найти номер начальной строки для обработки можно с помощью следующего кода:

Sub primer3()

Dim myPhrase As Variant, myCell As Range

myPhrase = “01.02.2019”

myPhrase = CDate(myPhrase)

Set myCell = Range(“A:A”).Find(myPhrase)

If Not myCell Is Nothing Then

MsgBox “Номер начальной строки: “ & myCell.Row

Else: MsgBox “Даты “ & myPhrase & ” в таблице нет”

End If

End Sub

Несмотря на то, что в ячейке дата отображается в виде текста, ее значение хранится в ячейке в виде числа. Поэтому текстовый формат необходимо перед поиском преобразовать в формат даты.

 

Tanya15

Пользователь

Сообщений: 5
Регистрация: 02.02.2018

Здравствуйте, подскажите, пожалуйста, как правильно прописать код VBA.
Необходимо в диапазоне текстовых ячеек найти ячейки которые содержат слово, например “яблоко”. Т.е. есть ячейки с текстом “зеленое яблоко”, “красное яблоко”, “яблоко” и тд, необходимо, что бы он нашел всех их.

 

V

Пользователь

Сообщений: 5040
Регистрация: 22.12.2012

и что дальше с этим делать будете?
как вариант таблицу загнать в массив и циклом перебирать .

 

Пытливый

Пользователь

Сообщений: 4652
Регистрация: 22.12.2012

Варианты: Воспользоваться методом Find для диапазона. Вопрос – что дальше с ними делать надо? :)

upd V, опередил с вопросом! :)

Кому решение нужно – тот пример и рисует.

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

#4

02.02.2018 11:12:01

Код
Sub test()
Dim i&, iCnt1&, iCnt2&, arr()
'1 вариант поиск на листе
For i = 1 To 100
    If UCase(Cells(i, 1).Value) Like UCase("яблоко") Then iCnt1 = iCnt1 + 1
Next i
'2 вариант поиск в массиве
arr = Range([a1], [a100]).Value
For i = 1 To 100
    If UCase(arr(i, 1)) Like UCase("яблоко") Then iCnt2 = iCnt2 + 1
Next i
'итог
MsgBox "На листе " & iCnt1 & "  ябл." & vbLf & "В массиве " & iCnt2 & " ябл."
End Sub

Изменено: Nordheim02.02.2018 11:13:37

“Все гениальное просто, а все простое гениально!!!”

 

Tanya15

Пользователь

Сообщений: 5
Регистрация: 02.02.2018

Мой пример

Sub Кнопка2_Щелчок()
Dim i As Single, j As Single, s As Single
s = 0
For i = 2 To 6
For j = 1 To 6

If Cells(i, j) = “яблоко” Then
s = s + Cells(i, j + 1)
End If
Next j
Cells(i, 7) = s
s = 0
Next i

End Sub

итого
яблоко 1 арбуз 25 яблоко 25 26
апельсин 2 апельсин 26 арбуз 14 0
зеленое яблоко 3 яблоко 24 вишня 86 24
яблоко арбуз 4 апельсин 28 зеленое яблоко 92 0
красное яблоко 5 красное яблоко 33 апельсин 32 0

В итоге считает только “яблоко”, а зеленые и красные не учитывает. Необходимо, чтобы считал по всем ячейкам в которых содержится слово “яблоко”

Изменено: Tanya1502.02.2018 12:10:19

 

Казанский

Пользователь

Сообщений: 8839
Регистрация: 11.01.2013

#6

02.02.2018 12:13:03

Tanya15,

Код
If Cells(i, j) like "*яблоко*" Then 
 

Tanya15

Пользователь

Сообщений: 5
Регистрация: 02.02.2018

Все так просто :(  Спасибо!

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

#8

02.02.2018 12:17:43

под ваш пример.

Код
Sub test()
Dim i&, iCnt1&, iCnt2&, arr(), ikey
'1 вариант
For Each ikey In ActiveSheet.UsedRange
    If UCase(ikey.Value) Like UCase("*яблоко*") Then iCnt1 = ikey(1, 2) + iCnt1
Next ikey
MsgBox "На листе " & iCnt1 & "  ябл."
End Sub

Изменено: Nordheim02.02.2018 12:20:58

“Все гениальное просто, а все простое гениально!!!”

You will find everything you need to know on the Excel VBA Find function. The Range Find function allows you to find cells within your Excel worksheet (and workbook) that contain a certain text or value. In this post let us explore the many ways in which you can use the Find function.

Looking to search text within VBA strings instead? See the VBA InStr and VBA InStrRev functions

Before we show how to use VBA to search for text within an Excel spreadsheet let us first see how to do it Excel and explore the usually unknown features of the famous CTRL+F combo. See below where you can find it within the Home ribbon and Editing group.Excel Search feature CTRL+F
By clicking the above or simply using the key combo CTRL+F we can enter the Find & Replace modal window.
Excel Find and Replace example
As you notice above Excel easily finds 10 matches for the cells on the left. However there are several more interesting search combinations you can use, including usage of wildcards you can use to get more specific patterns. See some examples below:

Find Matches
some*text
  • some*text
  • some other text
some ?
  • some text
  • some other text
some*e*a
  • somedeal

As you might have already noticed I used 2 types of wildcards above:

  • * – the asterisk symbol represents zero or many of any type of characters. It can be injected between characters to replace either no or any number of characters.
  • ? – the question mark represents at least 1 character.

Now that we have a hand of the basic features of Excel in terms of word search let us move to how to use Excel VBA to find cells containing specific text.

VBA Range Find function

The VBA Find function is in fact a function of the Excel VBA Range object class. See Microsoft documentation for more details. A VBA Range represents any subset of cells within a spreadsheet – it can be a single cell, entire row or a patchwork of different cells and other Ranges. Executing the Find function in fact limits the search to only the cells within its Range object.

Below is the definition of the VBA Range Find function and its parameters:

.Find(What, [After] [LookIn], [LookAt], [SearchOrder], 
     [SearchDirection], [MatchCase], [MatchByte], [SearchFormat])

The Find function returns only the first match within the Range. To search for next items you need to follow it up with the FindNext function.

Parameter Required Description
What Required The value you are searching for
After Optional The cell range from which you start your search from
LookIn Optional What to search in e.g. Formulas, Values or Comments – constants of XlFindLookIn: xlValues, xlFormulas, xlComments, xlCommentsThreaded
LookAt Optional Whether to search in a part of the string in a cell or whether it needs to match the entire cell string – constants of XlLookAt: xlWhole, xlPart
SearchOrder Optional The sequence of the search i.e. whether to search by rows or columns – constants of XlSearchOrder: xlByRows or xlByColumns
SearchDirection Optional Whether to search forward (next) or backwards (previous) – constants of XlSearchDirection: xlNext, xlPrevious
MatchCase Optional Case sensitive or not – True or False
MatchByte Optional Used for double byte languages. True to have double-byte characters match only double-byte characters – True or False
SearchFormat Optional Allow searching by format. See Application.FindFormat – True or False

VBA Find – simple example

We will start with a very simple VBA Range Find function example – searching for a single cell within the entire Excel active spreadsheet:

Dim ws As Worksheet
Set ws = ActiveSheet

Debug.Print ws.Cells.Find("some")

Output:

some text

As you can see it found the first match within the Activesheet (currently open and top spreadsheet) and returned the found value.

VBA Find All

Finding all matches is a little more complicated in VBA than in Excel. We will need to use Do While loop to run via all matches:

Dim searchRange As Range, found As Range, firstFind As Range
    
'Set the search range to the entire worksheet
Set searchRange = ActiveSheet.Cells
    
'Search for the first match
Set found = searchRange.Find("some")
'Save the first found cell to check later whether we have completed the search
Set firstFind = found
    
'Loop through all items using FindNext Range function
Do
   If Not (found Is Nothing) Then
      Debug.Print found.Value
      Set found = searchRange.FindNext(found)
   End If
Loop While Not (found = firstFind)

Output:

some text
some other text
someone
something
somedeal
someones
somerset
someway
somewhat
somewhen

I highlighted above 2 key functions that were used the Range Find Function and the Range FindNext Function. As I mentioned above the Find function will only return the first match. To get next matches you need to run FindNext on the original range. This is I am executing FindNext on the searchRange variable and not the found variable.

Another interesting point to notice is the Do While…loop. Notice I am comparing the found variable to the firstFind variable. This is because when running FindNext it will at some point move to the first match once again and thus never end… it will just keep going in a cirle! Thus the loop is set to end once the FindNext function returns the same first cell.

Find using Wildcards

As mentioned above you can use 2 types of wildcards the asterisk * (zero or more characters) and the question mark ? (at least 1 character) to match slightly more complicates cases.

Dim ws As Worksheet
Set ws = ActiveSheet
   
Debug.Print ws.Cells.Find("some ?")
'Output: some text

Debug.Print ws.Cells.Find("some*w")
'Output: someway

VBA Find with After

To remind the After parameter of the Excel VBA Range Find function defines where you will start your search. It is useful when you don’t want to redefine your range just for the purpose of the search activity. See the example below:

Debug.Print Range("B2:B5").Find("some ?", After:=Range("B3"))

Output:

someone

As you can see below the Find function starts searching for the “some” string just after cell B3 i.e. it will start at B4 where it finds the first matching string.
VBA Find using After parameter

Find After – avoid wrap around

Even if we specify that the VBA Range Find function should start searching for the string after a specified cell, it might wrap around back to the beginning of the Range we specified if it does not find a match when going down. See example below to understand:

Debug.Print Range("B2:B5").Find("some*text", After:=Range("B3"))

Output:

some text

VBA Find using After - wrapping
As you see the search started at B4 however once the search pattern “some*text” was not found until B5 the function resumed search on the remaining cells B2:B3 to find “some text”.

Find After Avoid wrapping using VBA Find

What to do to avoid this wrapping? We can check whether the found text is not within the preceding range using the Application.Intersect function.

If the found cell is before our After cell then we can handle it as such:

 
Set found = Range("B2:B5").Find("some*text", After:=Range("B3"))

If Intersect(Range("B2:B3"), found) Is Nothing Then
    Debug.Print "Found text: " & found.Value
Else
    Debug.Print "Text found is within excluded range"
End If

Output:

Text found is within excluded range

However if the found cell is only After the cell we specified then it will show like this:

 
Set found = Range("B2:B5").Find("some", After:=Range("B3"))

If Intersect(Range("B2:B3"), found) Is Nothing Then
    Debug.Print "Found text: " & found.Value
Else
    Debug.Print "Text found is within excluded range"
End If

Output:

Found text: someone

Find in Values, Formulas, Comments

The VBA Range Find function allows you not only to search within Values (the evalution of your Excel formulas). It can also search instead (or including) within Formulas, Comments and even Excel Threaded Comments.

Let us explore how to use the LookIn parameter to look into specific attributes of a cell.
VBA Range Find using LookIn to search in Values, Formulas, Notes or Threaded Comments
In the code below we will search for the word dog within Values, Formulas, Notes and Threaded Comments (just the first one). We will return the address first. Notice that for Formulas the result was the same – this is because the Value and Formula is the same in this case.

    
Debug.Print Range("A1:D4").Find("dog", LookIn:=xlValues).AddressLocal
'Output: $A$2

Debug.Print Range("A1:D4").Find("dog", LookIn:=xlFormulas).AddressLocal
'Output: $A$2 - as the formula and value for "dog" are the same in this case
Debug.Print Range("A1:D4").Find("This is a dog", LookIn:=xlFormulas).AddressLocal
'Output: $B$2

Debug.Print Range("A1:D4").Find("dog", LookIn:=xlNotes).AddressLocal
'Output: $C$2

Debug.Print Range("A1:D4").Find("dog", LookIn:=xlCommentsThreaded).AddressLocal
'Output: $D$2

The same code but this time returning the actual Value, Formula, Note or Comment:

    
Debug.Print Range("A1:D4").Find("dog", LookIn:=xlValues).Value
'Output: dog

Debug.Print Range("A1:D4").Find("dog", LookIn:=xlFormulas).Formula2Local
'Output: dog
Debug.Print Range("A1:D4").Find("This is a dog", LookIn:=xlFormulas).Formula2Local
'Output: =IF(A2="Dog", "This is a Dog","Other")

Debug.Print Range("A1:D4").Find("dog", LookIn:=xlNotes).NoteText
'Output: This is a note about a dog

Debug.Print Range("A1:D4").Find("dog", LookIn:=xlCommentsThreaded).CommentThreaded.Text
'Output: This is a threaded comment about a dog

Find After – avoid wrap around

Complex patterns for Find

In some cases the pattern you want to find might be more complicated such as e.g. looking for cells with any sequence of numbers, emails, addresses, phone numbers etc. In this case the VBA Range Find function will be too limited. However, there is a solution with the help of so call VBA Regular Expressions. Regular Expressions help define almost any search pattern and are widely used in other programming languages.

If you want to learn more read my VBA Regex Tutorial otherwise a very simple example below.
Find complex text patterns with regular expressions
In below code snippet we would like to find only phone numbers – so we will create a simple expression that finds any sequence of digits.

    
'Define the Regular Expression
Dim regex As Object
Set regex = CreateObject("VBScript.RegExp")
 
With regex
  'We will look only for sequences of at least 1 digit
  .Pattern = "[0-9]+"
End With
 

'Search in all cells within the Range
Dim r As Range
For Each r In Range("A1:D4")
    If regex.Test(r.Value) Then
        Debug.Print "Found a match: " & r.AddressLocal
    End If
Next r
Found a match: $A$3

Excel – VBA
I was wondering how to find a word into a Excel range of rows using VBA. Ex. “word to be found”, this is not just the cell value but a word into a string. For instance, the way to find the word “network” into the string “Need help to map network printer”.

Sub SearchForSfb()

   Dim LSearchRow As Integer
   Dim LCopyToRow As Integer

   On Error GoTo Err_Execute

   'Start search in row 1
   LSearchRow = 1

   'Start copying data to row 2 in Open (row counter variable)
   LCopyToRow = 2

   While Len(Range("E" & CStr(LSearchRow)).Value) > 0

      'If value in column E = "word to be found", copy entire row to Open
      If Range("E" & CStr(LSearchRow)).Value = "word to be found" Then

         'Select row in Data to copy
         Rows(CStr(LSearchRow) & ":" & CStr(LSearchRow)).Select
         Selection.Copy

         'Paste row into SFB in next row
         Sheets("SFB").Select
         Rows(CStr(LCopyToRow) & ":" & CStr(LCopyToRow)).Select
         Sheets("SFB").Paste

         'Move counter to next row
         LCopyToRow = LCopyToRow + 1

         'Go back to Data to continue searching
         Sheets("Data").Select

      End If

      LSearchRow = LSearchRow + 1

   Wend

   'Position on cell A3
   Application.CutCopyMode = False
   Range("A3").Select

   MsgBox "All matching data has been copied."

   Exit Sub

Err_Execute:
   MsgBox "An error occurred."

End Sub

pnuts's user avatar

pnuts

58.1k11 gold badges86 silver badges138 bronze badges

asked Oct 4, 2015 at 8:44

Kelvin Uceta Morel's user avatar

1

Use a simple loop

Sub Button1_Click()
    Dim ws As Worksheet
    Dim sh As Worksheet
    Dim lstRw As Long
    Dim rng As Range
    Dim s As String
    Dim c As Range

    s = "* network *"

    Set ws = Sheets("Data")
    Set sh = Sheets("SFB")

    With ws
        lstRw = .Cells(.Rows.Count, "E").End(xlUp).Row
        Set rng = .Range("E2:E" & lstRw)
    End With

    For Each c In rng.Cells
        If c.Value Like s Then
            c.EntireRow.Copy sh.Cells(sh.Rows.Count, "A").End(xlUp).Offset(1)
        End If
    Next c


End Sub

Or you can use a filter macro

Sub FiltExample()
    Dim ws As Worksheet, sh As Worksheet
    Dim rws As Long, rng As Range
    Set ws = Sheets("Data")
    Set sh = Sheets("SFB")

    Application.ScreenUpdating = 0

    With ws
        rws = .Cells(.Rows.Count, "E").End(xlUp).Row
        .Range("E:E").AutoFilter Field:=1, Criteria1:="=*network*"
        Set rng = .Range("A2:Z" & rws).SpecialCells(xlCellTypeVisible)
        rng.EntireRow.Copy sh.Cells(sh.Rows.Count, "A").End(xlUp).Offset(1)
        .AutoFilterMode = False
    End With

End Sub

answered Oct 4, 2015 at 9:18

Davesexcel's user avatar

DavesexcelDavesexcel

6,7532 gold badges27 silver badges42 bronze badges

1

Поиск ячеек, содержащих определенное слова (VBA)

​Смотрите также​​ открытого файла.​200?’200px’:”+(this.scrollHeight+5)+’px’);”>=ЕСЛИ(ЕНД(ПОИСКПОЗ(1;–ЕЧИСЛО(ПОИСК({“Дефектоскопист”:”Электрогазосварщик”:”Электросварщик”};B2));0));””;”+ретик”)​ = 7 To​
​ Split(Mid(adr, 2, 1000))​ занят.​Alex77755​в этом прайсе​ справки) For Each​Dim iWord As​ 400, что там​ я видимо слишком​ сделать – 20х20​alucard91​ ячейки – 10;​

​ в макросе. Я​​ Single​Tanya15​Вот код, но​
​AlexM​ i1 For i​Vlad999​yl3d​

​: Можно как-нибудь так.​​ беру цену D8​ c In [A1:C5]​ Variant, iSource As​ в строке -​ много хочу от​:)
​ в словарь с​: VBA для Excel.​:)

​ “AN185” – 5.​​ пыталась сделать через​s = 0​: Здравствуйте, подскажите, пожалуйста,​ думаю вам он​:​ = 1 To​: 1. уберите скобки​: Vlad999 , ясно​Развивать дальше фильтры​вставляю в базу​ ‘ If c.Font.Name​ Range, iCell As​ непонятно (может там​ экселя))​ столбцом, split ячейки,​Массив ключевых слов​ ИНАЧЕ во всех​ Formula.R1C1 и Index​For i =​ как правильно прописать​ ничем не поможет,​китин​ 4 .Pattern =​ у ms​Vlad999​ и условия​ H43​ Like “Cour*” Then​

​ Range iWord =​​ слов в пару​
​Но начальная проблема​
​ перебор этого массива,​ и специфика текста​ других случаях -​ Match, но насколько​
​ 2 To 6​
​ код VBA.​ т.к. вставляет полностью​
​, зачем ПОИСКПОЗ()​ “s?передачаs” If .test(Range(“A”​
​Dim ms2. замените​:​
​yl3d​________________​ ‘ c.Font.Name =​
​ Replace([A1], ” “,​
​ раз больше).​
​ решена, вопрос закрыт,​ проверка по словарю,​
​ в ячейке исключает​
​ 6.67.​
​ я поняла RC​
​For j =​Необходимо в диапазоне​ весь файл.​
​200?’200px’:”+(this.scrollHeight+5)+’px’);”>=ЕСЛИ(ИЛИ(ЕЧИСЛО(ПОИСК({“Дефектоскопист”:”Электрогазосварщик”:”Электросварщик”};B2)));”+ретик”;””)​ & j).Offset(, i).Value)​ часть кода, это​yl3d​: Добрый вечер, специалисты​но из производителей​ “Times New Roman”​ “-“, , 1)​

​Да и вообще​​ всем спасибо!​ выполнение макроса, выход.​ одновременное упоминание двух​

​Я сделал эту​​ не может искать​:(​ 1 To 6​

​ текстовых ячеек найти​​Sub find Set​
​китин​ Then Range(“K” &​ еще одна проверка​, результат записывать в​ по экселю.​ штук 20​ If c Like​ ‘: iWord =​ где это всё…​Hugo121​Т.к. так и​ ключей.​ формулу, но она​

planetaexcel.ru

поиск части текста макрос VBA

​ часть текста из​​If Cells(i, j)​ ячейки которые содержат​
​ imprng =activecell Open​:​ j) = “Есть”​ если искомое не​ одну ячейку или​Помогите разобраться с​артикулов десятки тысяч,​ “*” & pomenat​ Replace(iWord, “.”, “”)​ может там вообще​: Да что там​ не сказали что​Так что возможно​ работает некорректно…​ ячейки. Есть ли​ = “яблоко” Then​ слово, например “яблоко”.​ “файл” for input​AlexM​ Exit For Else​ найдено.​ один адрес -​
​ проблемой.​описания каждый придумывает​
​ & “*” Then​ Set iSource =​

​ нигде ни одного​​ сложного – добавить​

​ за таблица и​​ лишь одно совпадение​ЕСЛИ(ЕОШИБКА(ПОИСК(“AN85A “;B38;1));10;ЕСЛИ(ЕОШИБКА(ПОИСК(“AN185A”;B38;1));5;6.67))​ какие-нибудь другие варианты​s = s​ Т.е. есть ячейки​ as #1 Do​,​ Range(“K” & j)​If adr <>​ одна ячейка?​В книге несколько​ в своем формате​ c.Font.Name = “Times​ [AG2:BE14] For Each​ привычного пробела нет​ пробелы по концам,​ ячейка – только​ -> один макрос.​Sh_Alex​ решения этого вопроса?​ + Cells(i, j​ с текстом “зеленое​ until eof(1) Line​просто ПОИСК не​ = “Нет” End​

​ “” Then ms​​проверяйте​ листов.​ в какой колонке​ New Roman” End​ iWord In Split(iWord,​ Хотя раз код​ чтоб находить слова​ алгоритм.​Спасибо.​: Вот так будет​Может кто-то уже​ + 1)​ яблоко”, “красное яблоко”,​

​ input #1, text​​ работал, а до​

planetaexcel.ru

Поиск куска текста в ячейке

​ If Next i,​​ = Split(Mid(adr, 2,​Sub vvv() Dim​На листах 1,2,3,4​ какую инфу писать​ If Nextили​ “-“) Set iCell​ отработал – значит​ целиком…​alucard91​pashulka​ правильно: =ЕСЛИ(ЕОШИБКА(ПОИСК(“AN85A”;A1));ЕСЛИ(ЕОШИБКА(ПОИСК(“AN185A”;A1));6.67;5);10)​ сталкивался?​
​End If​ “яблоко” и тд,​ Sheets(“Лист1”).Select Range(“A5”).Select activeCell​
​ ИЛИ мозгов не​

​ j End With​​ 1000)) Cells(i, 5).Resize(,​ Ws As Worksheet,​
​ в некоторых ячейках​

​Не могу найти​​InStr​ = iSource.Find(Trim(iWord), ,​ были.​Вообще если бы​: Спасибо, вечером опробую.​: Один из возможных​
​С уважением, Александр.​

​Заранее спасибо за​​Next j​ необходимо, что бы​ = text Loop​

planetaexcel.ru

Поиск значения в ячейке

​ хватило​​ End Sub​
​ UBound(ms) + 1)​ i%, FR As​
​ находится текст.​ формулу которая найдет​
​заюзать – самое​ xlValues, xlWhole) If​Где должен быть​ был сразу показан​Если не получится​ вариантов :​Sh_Alex​ помощь!​Cells(i, 7) =​ он нашел всех​ Close #1 End​AlexM​
​Пытливый​
​ = ms End​ Range, adr$, f$,​
​На листе “Поиск”​
​ выбранное слово или​
​ доступное средство…​
​ Not iCell Is​
​ код – это​ материал для работы​ – выложу файл-образец.​Private Sub Test()​
​: А с учетом​Kuzmich​

​ s​​ их.​ sub​
​: Для уменьшения количества​: Здравствуйте.​ If​ a$, ms() For​ – находится столбец​ выражение в общей​voidex​

​ Nothing Then ”’​​ выяснили​
​ – всем было​pashulka, большое спасибо,​ Dim iWord As​ того, что функция​: Использовать Find​
​s = 0​V​Aleks777​
​ букв в формуле​

​Мне необходимо собрать​​yl3d​ i = 5​
​ C5:C17 – в​ ячейке и вернет​: спасибо! instr то​ Exit For End​alucard91​ бы легче.​ очень компактный код,​ Variant, iCell As​ ПОИСК(“AN85A”;A1) при отрицательном​Kuzmich​Next i​: и что дальше​:​ можно поэкспериментировать с​ формулу, которая:​: Vlad999 , спасибо​ To Cells(Rows.Count, 3).End(xlUp).Row​ котором вписаны слова,​
​ номер этой ячейки,​ что нужно​ If Next​: Спасибо за оживленный​pashulka​ все работает прекрасно​ Range For Each​ результате выдает #ЗНАЧ!,​: Макрос, запускать при​End Sub​ с этим делать​f1eshka​ массивом, например так​- берет Ф.И.О​ большое.​ f = Cells(i,​ по которым я​http://office.microsoft.com/ru-ru/ex…_matches_speci​artsmart​Hugo121​

​ дискус)​​:​Вот только как​ iWord In Split([A1])​ то можно покороче:​
​ активном листе Tabelle1,​итогояблоко1арбуз25яблоко2526апельсин2апельсин26арбуз140зеленое яблоко 3яблоко24вишня8624яблоко​ будете?​,​200?’200px’:”+(this.scrollHeight+5)+’px’);”>{“ефект”:”рогаз”:”росва”}​
​ человека (столбец 1),​Все работает.​ 3).Value For Each​
​ хочу осуществить поиск.​A​: Добрый день,​: Добавил небольшой код,​Приведу документ в​alucard91​ добавить поиск по​
​ Set iCell =​ =ЕСЛИ(ЕОШ(ПОИСК(“AN85A”;A1));ЕСЛИ(ЕОШ(ПОИСК(“AN185A”;A1));6.67;5);10)​ значения подтягиваются в​ арбуз 4апельсин28зеленое яблоко920красное​как вариант таблицу​

​Sub test() ‘​​Пытливый​
​- находит его​adrinalinka​
​ Ws In Sheets​Как макросом -​Данные​
​уже сломал голову​ подправил чуть существующее​ удобоваримый вид и​, Если не подлежит​
​ ключу из двух​ [A5:T24].Find(iWord, , xlValues,​С уважением, Александр.​ столбец В. В​

​ яблоко5красное яблоко33апельсин320​​ загнать в массив​ strFilePath = “MyTestFile.txt”​:​

​ должность (столбец 2),​​: Добрый день!​​ If Ws.Name <>​​ провести поиск ключевых​Белов​ в попытке решить​ (минимально – выход​
​ выложу завтра сюда​ редактированию, то как​ слов?​ xlWhole) If Not​azat​ ячейке с Potato​В итоге считает​ и циклом перебирать​ Call ImportFromTxt(“D:1.txt”, “*строка*”)​AlexM​- и если​Нужна Ваша помощь.​ “Поиск” Then Set​ слов по листам​БД123​ проблему​ если не нашёлся​

​ с полным описанием​​ узнать что сколько​Ну тоесть Дядя​ iCell Is Nothing​: Отлично. Все заработало.​
​ уберите пробел в​ только “яблоко”, а​ .​ End Sub Sub​,​ в его должности​
​ Видела похожие темы,​ FR = Ws.Cells.Find(f)​ 1,2,3,4 и вывести​Формула Описание (результат)​
​есть 4 прайса​ ключ, и выбор​ задачи.​

​ слов должен содержать​​ он ищет, а​ Then Run Choose(iCell.Column,​ Только вместо A1​ конце Sub iType()​ зеленые и красные​
​Пытливый​ ImportFromTxt(ByVal strFilePath As​китин​ находит определенные слова​ но все равно​

​ If Not FR​​ найденный текст -​​=ЕСЛИ(ЕЧИСЛО(ПОИСК(“л”;A2));”Верно”; “Неверно”) Проверка​​ поставщиков, у них​ не А1, а​Извините за конфуз)​ ключ ?​ вот Дядя Вася​
​ “Change”, “Delta”, “Sum”,​ надо B38)​ Dim i As​
​ не учитывает. Необходимо,​: Варианты: Воспользоваться методом​ String, ByVal strLike​,​ (в 1 ячейке​ не получилось сделать.​

​ Is Nothing Then​​ в третью строку​ ячейки A2 на​ меняются цены и​ первой ячейки найденного​

​Hugo121​​Может Вы хотите​​ – уже нет.​​ и т.д.) Exit​alucard91​ Long Dim iLastRow​​ чтобы считал по​​ Find для диапазона.​ As String) Const​Мужики спасибо!​ – 1 слово)​Дана таблица. По​ adr = adr​ листа “Поиск” -​
​ наличие буквы «л»​ наличие (нужно обновить)​ диапазона, и убрал​​: Не нужен обязательно​​ перебрать все варианты​

​Hugo121​​ For End If​
​: Добрый день!​ As Long Dim​ всем ячейкам в​ Вопрос – что​ ForReading As Byte​Вы не совсем​ выдает в ячейку​ столбцам перечислены стадии​ & ” “​ с выводом адреса​ (Верно)​
​Название все пишут​ удаление диапазона, ибо​ оригинал (личные и​ ?​: Мой алгоритм в​ Next End SubИли​Имеется некая ячейка,​ FoundCell As Range​
​ которых содержится слово​ дальше с ними​ = 1 Dim​

​ меня поняли:​​ “+ ретик”, если​ переработки (всего 4​
​ & Ws.Name &​ ячейки, в которой​=ЕЧИСЛО(ПОИСК(“БД”;A3)) Проверка ячейки​ по разному но​ это мне мешало​
​ секретные данные убирайте),​

​Или же Вам​​ первом варианте избавлен​ так, если в​ содержащая текст.​ iLastRow = Cells(Rows.Count,​ “яблоко”​ делать надо?​ i As Long​мне нужна была​ слова не встречаются​ стадии – 4​

​ “!” & FR.Address​​ был найден этот​ A3 на наличие​ содержатся точно либо​ Заменил на очистку​
​ нужен полный аналог​ достаточно частичного совпадения​ от этой проблемы.​ таблице ключевых слов​Имеется таблица 20*20,​ “C”).End(xlUp).Row Range(“B2:B” &​Казанский​
​upd V, опередил​ Dim fso As​ формула, которая:​ – оставляет ячейку​ столбца). В какой-то​ ‘—цикл по следующим​
​ текст ?​ текста «БД» (ИСТИНА)​

​ правильный номер номер​​ – смотрите там​​ – форматы, расположение​​ … тогда замените​pashulka​ первый столбец, не​​ содержащая ключевые слова.​​ iLastRow).ClearContents With Worksheets(“Tabelle2”)​: Tanya15, If Cells(i,​ с вопросом!​
​ Object, tso As​- берет Ф.И.О​ пустой.​ из стадий может​ найденным ячейкам a​Vlad999​вроде работает и​ (в разных форматах,​ есть остатки!)​ данных, ну и​ xlWhole на xlPart​:​ [A:A] :​Как при помощи​ For i =​ j) like “*яблоко*”​Nordheim​ Object Dim strLine​

​ человека (столбец 1),​​200?’200px’:”+(this.scrollHeight+5)+’px’);”>​ встречаться “передача”, которая​ = FR.Address ‘—запоминаем​: на листе один​ показывает ВЕРНО/НЕВЕРНО​ с пробелом,точкой или​Это для начала,​ в данном случае​ или добавьте символ​alucard91​Private Sub Test2()​ макроса запустить проверку​ 2 To iLastRow​
​ Then​: Sub test() Dim​ As String Dim​- находит его​

​=ЕСЛИ(ИЛИ(ВПР(A2;A:B;2;0)=”Дефектоскопист”;ВПР(A2;A:B;2;0)=”Электрогазосварщик”;ВПР(A2;A:B;2;0)=”Электросварщик”);”+ретик”;””)​​ может звучать по-разному​ адрес первой найденной​

CyberForum.ru

Поиск в ячейках по части слова

​ текст всегда в​​но как понять​ тире и тп.)​
​ там ведь нужно​ свои макросы не​ подстановки “*”​
​, В этом случае​ Dim iWord As​ ячейки, чтобы при​ Set FoundCell =​Tanya15​ i&, iCnt1&, iCnt2&,​ x As Long:​ должность (столбец 2)​Нет формулы поиска​ (например, передача с​ ячейки Do Set​ одном экземпляре?​ в какой ячейке​ или правильное указание​ поиск ключей переделывать,​ лишним будет показать,​Hugo121​

​ – можно выбрать​​ Variant, iSource As​ нахождении в ней​
​ .Columns(2).Find(Cells(i, “A”), ,​: Все так просто​ arr() ‘1 вариант​ x = 1​ и уже ПОТОМ…​ слова в массиве.​ передачей обязательств или​ FR = Ws.Cells.FindNext(FR)​yl3d​ он нашел соответствие??​ модели в тексте​ а некогда…​ если возможно.​​: – так все​​ другой критерий разделения​ Range, iCell As​

​ любого слова из​​ xlValues, xlPart) If​Спасибо!​

CyberForum.ru

Поиск определенной части текста в ячейке

​ поиск на листе​​ Set fso =​
​Но с Вашей​китин​ передача в стороннюю​
​ If FR.Address =​: Vlad999 , нет​Alex77755​ (с пробелом или​
​Hugo121​alucard91​ ключи говорят что​ ключей, например, запятую​ Range Set iSource​ столбца 1 -​ Not FoundCell Is​Nordheim​ For i =​ CreateObject(“Scripting.FileSystemObject”) ‘ Set​ помощью у меня​: может так?только нужные​
​ организацию). Надо, чтобы​ a Then Exit​ – может быть​
​: Я бы формулами​ без, или в​: Переделал поиск -​
​: Секретных данных нет,​ известны – есть​
​Код A1 =​ = [C5:V24] For​
​ выполнить макрос 1,​ Nothing Then Cells(i,​

​: под ваш пример.​​ 1 To 100​ tso = fso.OpenTextFile(strFilePath,​
​ получилось!!!​

​ слова надо вынести​​ в пятом столбце​ Do adr =​
​ несколько ячеек с​ не стал такое​ скобках)​
​ проверяйте.​
​ условия и задачи​
​ где-то некая таблица.​ Дядя Вася, мама,​
​ Each iWord In​
​ из столбца 2​ “B”) = .Cells(FoundCell.Row,​
​Sub test() Dim​ If UCase(Cells(i, 1).Value)​
​ ForReading) i =​
​ЕСЛИ(ИЛИ(ЕЧИСЛО(ПОИСК({“Дефектоскопист”:”Электрогазосварщик”:”Электросварщик”};ВПР(A2;Лист1!A:B;2;0))));”+ретик”;””)​ в отдельный столбец​
​ выполнялось следующее условие​
​ adr & “​ похожим текстом​ делать.​Нужно найти соответствие​
​voidex​ постарался максимально расписать​pashulka​ мыла, раму ‘можно​ Split([A1]) Set iCell​ – выполнить макрос​
​ “D”) End If​
​ i&, iCnt1&, iCnt2&,​
​ Like UCase(“яблоко”) Then​
​ 1 Do While​
​Второй лист.​
​200?’200px’:”+(this.scrollHeight+5)+’px’);”>=ЕСЛИ(ЕНД(ПОИСКПОЗ(1;–ЕЧИСЛО(ПОИСК($E$6:$E$8;B2));0));””;”+ретик”)​
​ =если в каком​ ” & Ws.Name​Vlad999​Макросами проще. Загонять​
​ прайсов и базы​: Всем доброго времени​ в самом документе.​
​:​ без пробелов Private​
​ = iSource.Find(iWord, ,​ 2, и так​ Next End With​

​ arr(), ikey ‘1​​ iCnt1 = iCnt1​ Not tso.AtEndOfStream ‘​СПАСИБО!!!​
​формула массива​ из столбцов есть​ & “!” &​
​: для одного.​ в массивы и​ по модели/номеру​ суток​
​От использования разных​Hugo121​ Sub Test1v2() Dim​ xlValues, xlWhole) If​ для каждого столбца​

​ End Sub​​ вариант For Each​ + 1 Next​
​ strLine = tso.ReadLine​
​f1eshka​только не понял​
​ слово “передача”, то​ FR.Address Loop ‘———–​
​Sub vvv() Dim​ работать с ними.​

​если есть совпадение​​есть макрос(точнее его​ макросов в зависимости​, Имелось ввиду, что​

​ iWord As Variant,​​ Not iCell Is​
​ ключевых слов.​Nordheim​

CyberForum.ru

Поиск текста с выводом адреса ячейки

​ ikey In ActiveSheet.UsedRange​​ i ‘2 вариант​ If strLine Like​
​: Доброго времени суток.​ причем тут ФИО?​
​ появляется слово “есть”.​ End If End​
​ Ws As Worksheet,​Но по тем​ указать Цену из​
​ часть которую я​ от результата совпадения​ если изначально -​ iCell As Range​ Nothing Then Run​Пример:​
​: Sub test() Dim​ If UCase(ikey.Value) Like​ поиск в массиве​ strLike Then Cells(x,​ Допустим есть файл​YouGreed​Задача, вроде простая,​ If Next ‘Cells(i,​ i%, FR As​ данным, что приложены​ Прайса в Базу​

​ бы хотел изменить​​ в таблице ушел​ было достаточно искать​ For Each iWord​

​ Choose(iCell.Column – iSource.Column​​Ячейка = “мама​ i&, cell As​ UCase(“*яблоко*”) Then iCnt1​ arr = Range([a1],​

​ 1).Value = strLine​​ info.txt ( состоит​
​: Пытливый, Так?​ но не могу​ 5) = adr​ Range, adr$, f$​ даже не могу​если изменилось указать​pomenat = InputBox(“введите​ к одному макросу,​любое слово​ In Split([A1], “,”)​ + 1, “Change”,​ мыла раму”​ Range With Sheets(“Tabelle1″)​ = ikey(1, 2)​ [a100]).Value For i​ x = x​ из множества строк,​200?’200px’:”+(this.scrollHeight+5)+’px’);”>=ЕСЛИ(СУММ(($E$5:$E$7=ПСТР(ВПР($A2;$A$2:$B$4;2;);1;НАЙТИ(” “;ВПР($A2;$A$2:$B$4;2;);1)-1))*СТРОКА($A2));”+ ретик”;”-“)​ сообразить, как с​ ‘если в одну​ For i =​ подсказать конкретно.​ наличие 1/0​ слово”) For Z​ зависящему от этого​

​из перечисленных, т.е.​​ Set iCell =​

​ “Delta”, “Sum”, и​​Таблица ключевых слов:​​ For i =​​ + iCnt1 Next​ = 1 To​ + 1 End​ например gsd =​
​Откровенно, накидал туда,​
​ помощью формул ее​ ‘если один адрес​ 5 To Cells(Rows.Count,​Для более конкретного​пример привел в​ = Z To​ результата.​ есть строка “дядю​ [A5:T24].Find(Trim(iWord), , xlValues,​ т.д.) Exit For​….1…….|……2……|…….3….​ 2 To .Cells(.Rows.Count,​ ikey MsgBox “На​ 100 If UCase(arr(i,​ If i =​ 797 …. dig​ всякого всякого, можно​ решить. Буду благодарна​ – одна ячейка​ 3).End(xlUp).Row f =​ ответа нужны конкретные​ приложении.​ LastRow1 If UCase(Cells(Z,​PS: кнопку убрал​ вася мама мыла​ xlWhole) If Not​ End If Next​Мама…|..Дядя…|..Дедка​ 1).End(xlUp).Row Set cell​ листе ” &​ 1)) Like UCase(“яблоко”)​ i + 1​ = 7666 и​ попроще…​ за помощь!​ ms = Split(Mid(adr,​ Cells(i, 3).Value For​ файлы что есть​Буду благодарен за​ c).Text) = UCase(pomenat)​ в сторону и​ раму” и мы​ iCell Is Nothing​ End SubP.S. При​Папа….|…Тетя…|…Бабка​

​ = Sheets(“Tabelle2”).Columns(“b:b”).Find(Trim(.Cells(i, 1).Value),​​ iCnt1 & “​ Then iCnt2 =​
​ Loop tso.Close Set​ т.д.) в корне​
​Пытливый​Svsh2015​ 2, 1000)) Cells(i,​
​ Each Ws In​ и что хотелось​ помощь!​

​ And…..Как сделать так,​​ забыл вернуть, она​ ищем, сначала дядю,​
​ Then ‘Выполнение необходимого​ желании, можно использовать​Выполнить макрос #1​ lookat:=xlPart) If Not​ ябл.” End Sub​
​ iCnt2 + 1​ tso = Nothing​ в с экселевким(готова​: китин,​: добрый день,​ 5).Resize(, UBound(ms) +​ Sheets If Ws.Name​

​ бы получить​​Alex77755​ чтобы можно было​
​ на той же​

CyberForum.ru

Поиск фрагментов текста в ячейке с использованием макросов

​ потом васю и​​ макроса Exit For​
​ массив​ так как ячейка​ cell Is Nothing​Lina1515​
​ Next i ‘итог​ Set fso =​ таблица) нужно сделать​Принцип работы очень​для тестирования кнопка​ 1) = ms​ <> “Поиск” Then​artsmart​: Открой секрет как​ ввести(в inputbox) не​ вкладке что и​ т.д.​ End If Next​Hugo121​ содержит слово из​ Then .Cells(i, 2).Value​: Всем доброго времени​ MsgBox “На листе​
​ Nothing End Sub​ так, чтобы через​ нравится. Но можно​ test в файл-примере,​ ‘————————- adr =​ Set FR =​

​: Вот сделал два​​ ты получил 9792,02?​
​ полное содержание ячейки,​ описание, только сбоку.​То теперь, когда​
​ End Sub​

​: Добавляем к значению​​ первого столбца.​ = cell(1, 3)​ суток!​
​ ” & iCnt1​Hugo121​ vba ексель находил​ без выноса? как-то​ кнопка clean -очистить:​ “” Next End​ Ws.Cells.Find(f) If Not​ файла вырезка​От сюда?​ которое надо обработать​Большое спасибо за​ выяснилось, что искомое​alucard91​ ячейки по пробелу​Надеюсь не сильно​ Next i End​Я недавно начала​ & ” ябл.”​: Обычно нужно вставлять​ в этом файле​

CyberForum.ru

Поиск конкретного слова из текста в ячейке (Формулы/Formulas)

​ в формуле прописать​​Код =ЕСЛИ(СЧЁТЕСЛИ(B7:E7;”*Передача*”)>0;”Есть”;”Нет”)​
​ Sub​ FR Is Nothing​
​Прайслист поставщика 1​artsmart​
​ (например: желтый дом),​ внимание.​
​ значение может содержать​: Hugo121, простите, Ваш​ по концам (в​ запутал. Спасибо))​ With End Sub​ работать в VBA,​ & vbLf &​ не одно значение,​ определенные строки и​ (документ итак забит​
​Svsh2015​
​yl3d​

​ Then adr =​страница 2 -​

​: Через вспомогательные файлы​​ а одно слово​pashulka​несколько слов​​ вариант с пробелами​​ переменной).​
​pashulka​Lina1515​

​ поэтому у меня​​ “В массиве “​
​ а много, и​
​ выставлял в конкретные​ до отказа).​: добрый вечер,можно также​

​: Vlad999 , один​​ adr & “​
​ база данных SQL​ вообще-то делал​ “желтый” или “дом”​:​, возник мой вопрос.​ показался мне слишком​

​Цикл по 20х20​​: Excel ? Word​
​: Спасибо большое!​ возник маленький вопрос.​ & iCnt2 &​ разных. Поэтому есть​

​ ячейки ексель при​​Пытливый​​ использовать макрос,кнопка yy​

​ адрес- одна ячейка.​​ ” & Ws.Name​​нужно из 1​​Из прайса всю​​ или если возможно(так​

​alucard91​​Hugo121​​ запутанным.​​ (можно 2 вложенных),​hands hands hands​ ?​azat​ Я его оформила​ ” ябл.” End​

​ смысл сперва прочитать​​ этом, чтобы взятая​: YouGreed,​ в файл-примере:​Vlad999 , не​​ & "!" &​

​ страницы​​ строку разбиваю на​hands ​ для общего развития)​​, На первый взгляд,​​: Вопрос понятен.​​pashulka, текст в​
​ к каждому значению​
​Если в ячейке​: Подскажите пожалуйста правильную​
​ в Excel. Сама​ Sub​
​ весь файл в​ строка вставлялась в​
​Извини, формула хорошая​Sub yy() Dim​ работает.​
​ FR.Address End If​вытащить цены во​ слова​
​ вообще “жел”(если такое​
​ реальный разделитель данных,​
​Но без примера​

excelworld.ru

Поиск определенного текста в файле .txt и вставка в определенную ячейку в Excel

​ А1 редактированию не​​ прибавляем пробелы, ищем​ будет текст “папа​ формулу… Мне надо​ задача очень простая,​Tanya15​ словарь (ну или​ эксель с данными​ но если слово​ i&, j&, i1&​Выдает ошибку “run-time​ Next Cells(i, 5)​ вторую​F43​ возможно)​ у Вас это​ и подробного описания​ подлежит, так что​ используя Instr()​ + тетя =​ чтобы в ячейке​ если её решать​: Мой пример​ в коллекцию), а​ после знака равенства.​
​ не в начале​ i1 = Range(“B”​ error ’13’: Type​ = adr adr​artsmart​
​сравниваются с​Апострофф​-​ задачи непонятно, что​ буду пытаться составить​Если нашли -​ адюльтер”, то какой​ B38 формула проверала​ в Excel. Я​Sub Кнопка2_Щелчок()​

​ затем циклом по​​ Пока сам только​​ предложения – сыпется.​​ & Cells.Rows.Count).End(xlUp).Row With​
​ mistmatch”​ = “” Next​: Что никто задачи​названиями, моделями, номерами​: Метод Range.Find с​и в этом​ вообще оптимальнее искать​ более четкие ключи​ анализ столбца, выполнение​ макрос нужно выполнить​ наличие текста “AN85A”​ бы использовала =VLOOKUP(“*”&A2&”*”;Sheet2!B:D;3;0).​Dim i As​ листу всё собранное​ научился делать простейший​китин​ CreateObject(“VBScript.RegExp”): .IgnoreCase =​и подсвечивает строку​ End Subдля нескольких​ ранее не рашал​ прайсов​ параметром LookAt:=xlPart​ случае, можно протестировать​ – ключей изначально​ для избежания колизий.​ макроса, выход.​ 1, 2 или​ и в случае​ Но я бы​ Single, j As​ разложить по местам.​ импорт данных из​: легко​ True For j​

​ кода: ms =​​ чуть позже. пока​ подобной?​получаем B8​или (тоже из​ :​ ясно что всего​Да и вообще​Можно и иначе​ 1+2​ истины, то значение​ хотела это автоматизировать​

CyberForum.ru

​ Single, s As​

Добавить комментарий