Форум по VBA, Excel и Word

VBA, Excel => VBA, макросы в Excel => Тема начата: Посетитель от 02 мая 2022, 21:36

Название: Упорядочить список детей
Отправлено: Посетитель от 02 мая 2022, 21:36
Добрый вечер !
Есть два списка детей. Один по алфавиту, а другой по договору.
Необходимо взять размер обуви из листа по алфавиту и вставить напротиф Фамилии в листе по договору.
Начал писать, а потом запутался.
Собственно вопрос, когда со второго листа беру фамилию, можно сразу запомнить номер строки в переменную ? (.Row)

Sub learningFind()
    Dim sh_in As Worksheet, sh_out As Worksheet
    Dim rangeToSearch As Range
    Dim cellWithValue As Range
    Dim CellFind1 As Range
    Dim CellFind2 As Range
   
    Set sh_in = Worksheets("Лист2")
    Set sh_out = Worksheets("Лист1")
   
    Set rangeToSearch = ThisWorkbook.Worksheets("Лист1").Range("B3:B34")
   
        For Each cellWithValue In ThisWorkbook.Worksheets("Лист2").Range("B3:B34")
        Set CellFind1 = rangeToSearch.Find(cellWithValue, , xlValues, xlWhole)
        MsgBox CellFind1.Offset(0, 1).Value
        Next cellWithValue
End Sub

Название: Re: Упорядочить список детей
Отправлено: Администратор от 02 мая 2022, 21:46
Я не понял вопроса. Не понимаю, откуда что берётся, где что надо искать, куда и что записывать.
Название: Re: Упорядочить список детей
Отправлено: Посетитель от 02 мая 2022, 21:53
Да всё просто.
Лист1:
Иванов
Петров
Сидоров

Лист2:
Петров          39
Сидоров        41
Иванов          45

Необходимо со второго листа перекинуть размер ноги на первый согласно фамилиям.
Название: Re: Упорядочить список детей
Отправлено: Посетитель от 02 мая 2022, 21:56
В первом столбце нумерация только, упустил этот момент, Фамилии в столбце B, на обоих листах ...
В столбце С - размеры
Скинул бы файл, но он остался на работе.
Название: Re: Упорядочить список детей
Отправлено: Посетитель от 02 мая 2022, 22:18
Примерно так.
Сам постоянно копирую и заменяю на другом листе. Но приходят новые люди, хотелось бы автоматом прогонять, если понимаете о чем я.
Название: Re: Упорядочить список детей
Отправлено: Администратор от 03 мая 2022, 05:52
И какой у вас вопрос по коду? Вы написали код и какой у вас вопрос по коду относительно задания, в какую переменную вы хотите записать и зачем?
Название: Re: Упорядочить список детей
Отправлено: Посетитель от 03 мая 2022, 07:58
Если я правильно понял, надо внести в одну переменную номер строки с листа 2, взятой Фамилии человека, а во вторую переменную номер строки с листа 1, найденной фамилии. Возможно я не не правильно себе представляю алгоритм работы макроса, можно сделать это проще ?
Название: Re: Упорядочить список детей
Отправлено: Администратор от 03 мая 2022, 08:59
Мне начинает казаться, что вы хотите узнать номер найденной строки. С помощью Find вы нашли искомое значение и теперь вы хотите узнать, в какой строке найдено искомое значение?
Название: Re: Упорядочить список детей
Отправлено: Посетитель от 03 мая 2022, 09:16
С этим как раз проблем нет :
MsgBox CellFind1.Row
Мне необходимо запомнить номер строки с которой была взята фамилия, речь про Лист2.
Название: Re: Упорядочить список детей
Отправлено: Посетитель от 03 мая 2022, 13:41
Наверное так:

Sub learningFind()
    Dim sh_in As Worksheet, sh_out As Worksheet
    Dim lngRowCounter As Long
    Dim rangeToSearch As Range
    Dim cellWithValue As Range
    Dim CellFind1 As Range
    Dim CellFind2 As Range
   
    Set sh_in = Worksheets("Лист2")
    Set sh_out = Worksheets("Лист1")
   
    Set rangeToSearch = ThisWorkbook.Worksheets("Лист1").Range("B3:B34")
   
        For Each cellWithValue In ThisWorkbook.Worksheets("Лист2").Range("B3:B34")
        Set CellFind1 = rangeToSearch.Find(cellWithValue, , xlValues, xlWhole)

       
            For lngRowCounter = 3 To 15
            ThisWorkbook.Worksheets("Лист1").Range("C" & CellFind1.Row).Value = ThisWorkbook.Worksheets("Лист2").Range("C" & lngRowCounter).Value
            Next lngRowCounter


        Next cellWithValue

End Sub



Но Run-time error "91" по окончанию ловлю ...
Название: Re: Упорядочить список детей
Отправлено: Администратор от 03 мая 2022, 15:45
Не знаю, как решить ваше задание.
На этом форуме отвечаю только я, пробуйте на других форумах.
Название: Re: Упорядочить список детей
Отправлено: Посетитель от 03 мая 2022, 19:02
У меня есть несколько мыслей по этому поводу, уже почти закончил.
Все-равно спасибо за уделенное время, вы не могли бы тогда удалить эту тему с форума ?
Макрос теперь работает как я хочу, только в конце не ищет последнюю позицию, но я либо разберусь с этим, либо выложу на другом форуме код ...