Приветствую. Что хочется. Есть 2 листа. ФИО и дата рождения с листа 1 ищутся на листе 2. Если таковые есть, то данные столбцов J,P,L листа 2 добавляются в столбцы FGH листа 1. На текущий момент данные столбцов J,P,L листа 2 добавляются в столбец F листа 2. Никак не могу разбить найденное по столбцам, помогите плиз. Словарь используется для ускорения работы, т.к. на каждом листе под полмиллиона строк.
Код
Sub Search()
Dim a(), b(), t$, ii&, s$, i&, x&, ss$, d&, z&, Dict As Object, tt As Object
Dim w As Workbook, v As Worksheet ', vm As Worksheet
d = timeGetTime
Set vm = Sheets("1")
vm.Columns("F").ClearContents
For Each w In Application.Workbooks
If w.Name = "test.xlsm" Then
With w.Sheets("2")
ii = .Cells(.Rows.Count, 1).End(xlUp).Row
a = Range(.Cells(2, "F"), .Cells(ii, "S"))
End With
Exit For
End If
Next
With CreateObject("Scripting.Dictionary")
For i = 2 To UBound(a)
.Item(a(i, 1) & " " & a(i, 3)) = a(i, 5) & "|" & a(i, 11) & "|" & a(i, 7)
Next
vm.Activate
ii = Cells(Rows.Count, 2).End(xlUp).Row
a = Range("B2:C" & ii).Value
b = Range("F2:F" & ii).Value
For x = 2 To ii - 1
t = a(x, 1) & " " & a(x, 2)
If .Exists(t) Then
b(x, 1) = .Item(t)
End If
z = z + 1
Next x
End With
Range("F2:F" & ii).Value = b
End Sub
Добрый день. Пытаюсь открыть папку Xyz в уже запущенном Outlook из Excel
Код
Dim objOutlook As Outlook.Application
Set objOutlook = GetObject(, "Outlook.Application")
objOutlook.Session.Folders("vasya@mail.ru").Folders("Xyz").Display
Открывается новое окно Outlook и нужная папка открывается в нем. Подскажите плиз, где я неправ.Спасибо.
vikttur написал: Вы помощь получили - так облегчите поиск ответа другими.
Вариант заголовка "Выборка и подсчет итогов. Массив" подходит? Предлагаю такой вариант, ну и лишнее в топике потрите.
Цитата
vikttur написал: 2.1. Название темы должно отражать смысл проблемы.
На момент создания темы заголовок и отражал смысл проблемы. Когда тема создавалась я был настроен использовать списки или словари. Уважаемый Hugo предложил вариант решения с массивами. Это и оказалось "чем-то еще".
kuklp написал: Только не удивляйтесь, если в следующий раз придя за халявой, Вы ответов не увидите. До исправления нарушения в этой теме. Модеры могут скрывать ответы. Быковать не стоит.
Причем тут "быковать"? Вы о чем? "Закрытие" темы на других посещаемых мной форумах означает, что вопрос решен, дальнейшее обсуждение его не принесет ничего ТС, модератор делает пометку "тема закрыта", писать в нее никто не сможет. Здесь по-другому?
Цитата
vikttur написал: Значит, вместо автор теперь помогающие будут отдуваться. Nekto, нормально? Вам помогли да еще вместо Вас Ваш косяк исправлять будут.
Лично Вас не устроило название темы - ну так и переименуйте по своему разумению. Меня вполне устраивает название, которое согласуется с заданным мной вопросом. И да, в чем косяк поясните. Желательно со ссылкой на пункты правил, если уж разговор пошел в таком ключе.
Hugo написал: Я так и вижу алгоритм - сперва справочник вносим в словарь - каждому ключу/варианту (которые перечислены через запятую) присваиваем значение/наименование.... ..... если данных немного - можно писать суммы сразу на лист, получая адрес ячейки из подготовленного словаря пар наименование-адрес.
Именно так и предполагал. Только не знаю, как реализовать сиё на практитке - никогда со словарями и списками не работал. Буду рад любой подсказке.
Hugo написал: - так уже в этом простом примере нет всех достаточных вариантов. Нет Точка доступа WIFI ККТ Ритейл ККТ Атол ФР Ритейл
Ага, понял про что Вы. Пример привел плохой, посему немного изменил его. Тонкий клиент - однозначно описывается содержанием в строке либо "ТК", либо "тонкий" Принтеры - "Принтеры HP", либо "Samsung" соответственно. Ну и т.д. Т.е. словарь однозначно описывает уникальную подстроку, которая может содержаться в строке какого-либо оборудования. В случае, если такая подстрока находится в столбце, необходимо просуммировать соответствующее оборудование и результат записать в столбец "F".
Hugo написал: Можно сделать используя словари, но недостаточно корректные данные. Например, что будете делать если вдруг будет какой-нибудь WIFI принтер?
Варианты будут достаточно точные. Так и напишу в словаре "WIFI принтер". В случае появления разногласий словарь будет изменяться, это не проблема. Не надо на этом зацикливаться, это просто пример
И снова здравствуйте. Есть табличка с различным ИТ оборудованием (столбцы А и В). Есть табличка, где расписаны признаки группировки (ну или варианты написания) этого оборудования (столбцы D и Е). Задача - подсчитать общее количество однотипного оборудования (столбец F), согласно признакам группировки. Для удобства понимания одинаковые группы пометил одинаковым цветом. Чет не могу сообразить, как лучше это сделать (на VBA), помогите плиз.
Добрый день. Чет не могу сообразить. Нужно чтобы из столбца с датой отбирались данные по каждому дню и сохранялись в переменную: Msg(1)="08.08.2017: Номер 1, Адрес1; Номер 2, Адрес2; Номер 3, Адрес 3; Номер 4, Адрес 4" Msg(2)="09.08.2017: Номер 5, Адрес5" и так далее. Msg(N)=... Подскажите плиз, как реализовать задуманное