Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Цикл для поиска подходящих значений - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Цикл для поиска подходящих значений
AleksN Дата: Среда, 01.02.2017, 16:01 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Всем доброго дня!
Подскажите пожалуйста как должен выглядеть цикл для поиска подходящих вариантов.
Во вложении есть пример как должен работать цикл.
Суть заключается в следующем:
есть таблица с размерами ячеек и таблица товаров с размерами. Необходимо каждый товар сравнить с каждой ячейкой по размерам и в случае совпадения вписать название товара. Но так чтобы названия не дублировались.
Спасибо.
К сообщению приложен файл: 9115882.xlsx (46.0 Kb)
 
Ответить
СообщениеВсем доброго дня!
Подскажите пожалуйста как должен выглядеть цикл для поиска подходящих вариантов.
Во вложении есть пример как должен работать цикл.
Суть заключается в следующем:
есть таблица с размерами ячеек и таблица товаров с размерами. Необходимо каждый товар сравнить с каждой ячейкой по размерам и в случае совпадения вписать название товара. Но так чтобы названия не дублировались.
Спасибо.

Автор - AleksN
Дата добавления - 01.02.2017 в 16:01
gling Дата: Четверг, 02.02.2017, 00:22 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2690
Репутация: 765 ±
Замечаний: 0% ±

2010
как должен выглядеть цикл

Вариант.[vba]
Код
Sub цикл()
Dim i As Long, LastRow As Long
Dim j As Long, lLastRow As Long
LastRow = Sheets("товар").Cells(Rows.Count, 1).End(xlUp).Row
lLastRow = Sheets("ячейки").Cells(Rows.Count, 1).End(xlUp).Row
Application.ScreenUpdating = False
With Sheets("товар")
    For i = 2 To LastRow
    For j = 2 To lLastRow
        If .Cells(i, 2) >= Cells(j, 2) And .Cells(i, 2) <= Cells(j, 3) And .Cells(i, 3) >= Cells(j, 4) And .Cells(i, 3) <= Cells(j, 5) And Cells(j, 6) = "" Then
            Cells(j, 6) = .Cells(i, 1)
            Exit For
        End If
    Next
    Next
End With
Application.ScreenUpdating = True
End Sub
[/vba]
К сообщению приложен файл: 7200430.xlsm (50.3 Kb)


ЯД-41001506838083
 
Ответить
Сообщение
как должен выглядеть цикл

Вариант.[vba]
Код
Sub цикл()
Dim i As Long, LastRow As Long
Dim j As Long, lLastRow As Long
LastRow = Sheets("товар").Cells(Rows.Count, 1).End(xlUp).Row
lLastRow = Sheets("ячейки").Cells(Rows.Count, 1).End(xlUp).Row
Application.ScreenUpdating = False
With Sheets("товар")
    For i = 2 To LastRow
    For j = 2 To lLastRow
        If .Cells(i, 2) >= Cells(j, 2) And .Cells(i, 2) <= Cells(j, 3) And .Cells(i, 3) >= Cells(j, 4) And .Cells(i, 3) <= Cells(j, 5) And Cells(j, 6) = "" Then
            Cells(j, 6) = .Cells(i, 1)
            Exit For
        End If
    Next
    Next
End With
Application.ScreenUpdating = True
End Sub
[/vba]

Автор - gling
Дата добавления - 02.02.2017 в 00:22
AleksN Дата: Четверг, 02.02.2017, 10:22 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
gling, спасибо Вам за помощь!
 
Ответить
Сообщениеgling, спасибо Вам за помощь!

Автор - AleksN
Дата добавления - 02.02.2017 в 10:22
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2026 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!