Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2010, 08:42   #11
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Цитата:
Сообщение от Badass Посмотреть сообщение
можете все таки пояснить в вашем макросе работу инструкции with с переменными, с определения числа символов в объекте
Попробую так:
Код:
' заполняем коллекцию уникальных значений
With New Collection
    On Error Resume Next ' если появится ошибка, то идем дальше
    For i = 1 To UBound(x, 1)
        If Len(x(i, 2)) > 0 Then
            k = CStr(x(i, 1)): Err.Clear    ' ключ - по первому столбцу массива; очищаем обработчик ошибок
            ' в качестве элементов коллекции записываем номера строк
            .Add Item:=j + 1, Key:=k
            If Err <> 0 Then    ' - произошла ошибка, т.е. попытались добавить
                ' в коллекцию элемент с таким ключом, который уже есть в коллекции;
                ' тогда определяем номер строки коллекции с этим ключом (это будет
                ' номер строки u в выходном массиве),
                u = .Item(k)
                ' и суммируем в выходном массиве количество для строк с одинаковыми ключами
                y(u, 2) = y(u, 2) + x(i, 2)
            Else    ' - ошибки нет, т.е. в коллекцию попал элемент с уникальным ключом,
                ' увеличиваем счетчик и переносим значения из исходного массива в выходной
                j = j + 1
                y(j, 1) = x(i, 1): y(j, 2) = x(i, 2)
            End If: End If
    Next i
End With     ' очищаем память от коллекции
Со словарями, действительно, проще (и "кошернее", как некоторые считают)
nilem вне форума Ответить с цитированием
Старый 12.11.2010, 09:11   #12
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Мне при работе с коллекцией не нравится то, что всё основано на ошибках
Вероятно чисто психологически не нравится
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обойти "преобразование типа из "string" в "float" невозможно" lexluter1988 Помощь студентам 1 07.08.2010 12:23
EXCEL.VBA. Макрос "точной" копии документа xАлексейx Фриланс 5 12.07.2010 22:17
"ОКРВВЕРХ", "ОКР", "ЕСЛИ". Как бы их связать. Каравай Microsoft Office Excel 13 17.02.2010 09:53
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04