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

Вход

Регистрация

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

 

= Мир MS Excel/Построение макроса копирования строк по условиям - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Построение макроса копирования строк по условиям
NAME Дата: Воскресенье, 28.07.2019, 14:13 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день, уважаемые форумчане! Столкнулся с проблемой при построении макроса, который копирует строки на другой уже существующий лист, если те удовлетворяют двум условиям: первое - значение в столбце С не повторяется в других строках этого столбца; второе - код доставки (столбец Е) принимает одно из значений ("OIU", "IUH", "TOW", "DLV"), иначе говоря, состоит из букв, а не цифр. В приложенном файле-примере таблицы для макроса, по этим условиям должны скопироваться на лист "Вставка" строки 14 и 16. Особо богатого опыта в работе с макросами не имею, поэтому надеюсь на вашу помощь. Спасибо!
К сообщению приложен файл: 6330142.xlsx (11.1 Kb)
 
Ответить
СообщениеДобрый день, уважаемые форумчане! Столкнулся с проблемой при построении макроса, который копирует строки на другой уже существующий лист, если те удовлетворяют двум условиям: первое - значение в столбце С не повторяется в других строках этого столбца; второе - код доставки (столбец Е) принимает одно из значений ("OIU", "IUH", "TOW", "DLV"), иначе говоря, состоит из букв, а не цифр. В приложенном файле-примере таблицы для макроса, по этим условиям должны скопироваться на лист "Вставка" строки 14 и 16. Особо богатого опыта в работе с макросами не имею, поэтому надеюсь на вашу помощь. Спасибо!

Автор - NAME
Дата добавления - 28.07.2019 в 14:13
wild_pig Дата: Вторник, 30.07.2019, 23:48 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 518
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Помогаю
[vba]
Код
Sub uuu()
    Dim a()
    Dim i&, rw&
    Dim sd As Object
    Dim k
'---------------------
    a = Sheets("Таблица").UsedRange.Value
    Set sd = CreateObject("Scripting.Dictionary")
    For i = 2 To UBound(a)
        k = a(i, 3)
        If k <> "" Then sd.Item(k) = sd.Item(k) + 1
    Next
    rw = 2
    For Each k In sd.Keys
        If sd.Item(k) = 1 Then
            For i = 2 To UBound(a)
                If a(i, 3) = k Then
                    If InStr("OIU,IUH,TOW,DLV", a(i, 5)) > 0 Then
                        Sheets("Вставка").Cells(rw, 1).Resize(1, UBound(a, 2)) = WorksheetFunction.Index(a, i)
                        rw = rw + 1
                    End If
                End If
            Next
        End If
    Next
    Beep
    MsgBox "Готово!"
End Sub
[/vba]
 
Ответить
СообщениеПомогаю
[vba]
Код
Sub uuu()
    Dim a()
    Dim i&, rw&
    Dim sd As Object
    Dim k
'---------------------
    a = Sheets("Таблица").UsedRange.Value
    Set sd = CreateObject("Scripting.Dictionary")
    For i = 2 To UBound(a)
        k = a(i, 3)
        If k <> "" Then sd.Item(k) = sd.Item(k) + 1
    Next
    rw = 2
    For Each k In sd.Keys
        If sd.Item(k) = 1 Then
            For i = 2 To UBound(a)
                If a(i, 3) = k Then
                    If InStr("OIU,IUH,TOW,DLV", a(i, 5)) > 0 Then
                        Sheets("Вставка").Cells(rw, 1).Resize(1, UBound(a, 2)) = WorksheetFunction.Index(a, i)
                        rw = rw + 1
                    End If
                End If
            Next
        End If
    Next
    Beep
    MsgBox "Готово!"
End Sub
[/vba]

Автор - wild_pig
Дата добавления - 30.07.2019 в 23:48
  • Страница 1 из 1
  • 1
Поиск:

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