Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
24.04.2024, 03:15:20

Войти
На форуме добавлена возможность подписки на RSS-ленты любого раздела форума. Подписаться можно, нажав на иконку RSS , расположенную левее наименования раздела.
33 242 Сообщений в 5 457 Тем от 6 758 Пользователей
Последний пользователь: Сергей2662
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Excel и VBA
| | |-+  Уникальные
Страниц: [1] 2 3 4  Все   Вниз
Печать
Автор Тема: Уникальные  (Прочитано 65462 раз)
0 Пользователей и 1 Гость смотрят эту тему.
baters
Старожил
****

Репутация: +9/-0
Офлайн Офлайн

Сообщений: 382


Просмотр профиля E-mail
« : 19.04.2011, 21:07:00 »

Добрый вечер.

Извлекаю уникальные из двух вкладок.

Sub Extract_Unique()
    Dim vItem, avArr, li As Long, wsSh As Worksheet
    ReDim avArr(1 To Rows.Count, 1 To 1)
    With New Collection
        On Error Resume Next
        For Each wsSh In Sheets(Array("1 вкладка", "2 вкладка"))
            For Each vItem In wsSh.Range("A1", wsSh.Cells(wsSh.Rows.Count, 1).End(xlUp)).Value
                .Add vItem, CStr(vItem)
                If Err = 0 Then
                    li = li + 1: avArr(li, 1) = vItem
                Else: Err.Clear
                End If
            Next
        Next wsSh
    End With
    If li Then [B1].Resize(li).Value = avArr
End Sub




Подскажите пожалуйста, что нужно изменить в макросе что бы:
1.  ячейки в столбцах "D" (вкладок от куда цепляю уникальные) преобразовались в число.
2. Что нужно изменить в макрорсе, что бы он извлекал из вкладкок уникальные столбцов "D", и подставлял значения этих уникальных из столбцов "С" "H" "F". 
Заранее благодарен.
Записан
Alex_ST
Постоялец
***

Репутация: +13/-0
Офлайн Офлайн

Сообщений: 156


Просмотр профиля
« Ответ #1 : 20.04.2011, 08:43:57 »

Поясните, пожалуйста:
1. Под "вкладки" вы, наверное, имеете в виду "Листы"?
2. Почему, в макросе у вас выбираются значения из столбцов А если вам нужно из D?
3. А в столбцах D обоих листов у вас только цифры? Текста точно нет? Цифры, надеюсь, целые?
4. Как вы себе представляете подстановку значений одновременно из столбцов "С" "H" "F"?
(так, по крайней мере следует из вашего вопроса)
« Последнее редактирование: 20.04.2011, 08:45:54 от Alex_ST » Записан

С уважением, Алексей
baters
Старожил
****

Репутация: +9/-0
Офлайн Офлайн

Сообщений: 382


Просмотр профиля E-mail
« Ответ #2 : 20.04.2011, 18:29:09 »

Добрый день.

Отвечаю по порядку.
1. ага именно лист.
2. хм опечатался ссори.
3. в столбцах Д только цифры, и только целые.
4. в этих столбцах часть данных относящихся к уникальным, и они становятся последовательно в столбцы после уникальных.
Записан
Alex_ST
Постоялец
***

Репутация: +13/-0
Офлайн Офлайн

Сообщений: 156


Просмотр профиля
« Ответ #3 : 20.04.2011, 20:32:00 »

… в этих столбцах часть данных относящихся к уникальным, и они становятся последовательно в столбцы после уникальных…
"моя твоя не понимай" ;D
Выкладывайте пример. Без него от ваших "разъяснений" всё только ещё больше запуталось.
Записан

С уважением, Алексей
baters
Старожил
****

Репутация: +9/-0
Офлайн Офлайн

Сообщений: 382


Просмотр профиля E-mail
« Ответ #4 : 20.04.2011, 21:04:09 »

http://zalil.ru/30901151

вот примерчик
Записан
Alex_ST
Постоялец
***

Репутация: +13/-0
Офлайн Офлайн

Сообщений: 156


Просмотр профиля
« Ответ #5 : 20.04.2011, 21:43:14 »

Ну, извините, но "я так не играю"...
Неужели нельзя было в примере показать сделанный в ручную пример того, что должен сделать макрос?
А ещё сделать разъяснения, откуда какие данные в результате получены? Да хоть одинаковым цветом ячеек на листах…
Может быть вам ваша структура файла и взаимосвязь данных и понятна, но мне - нет.

Да и файл-пример почему-то на стороннем ресурсе выложили, а не здесь же в посте... А у меня с работы доступ на zalil и практически на все другие файлообменники закрыт.

Так что помочь вам, скорее всего не смогу.
 
Записан

С уважением, Алексей
baters
Старожил
****

Репутация: +9/-0
Офлайн Офлайн

Сообщений: 382


Просмотр профиля E-mail
« Ответ #6 : 20.04.2011, 22:07:20 »

Все исправил, выделил цветом. Запускается с ИТОГ1 и подтягивает данные по цвету.

[вложение удалено Администратором]
Записан
Alex_ST
Постоялец
***

Репутация: +13/-0
Офлайн Офлайн

Сообщений: 156


Просмотр профиля
« Ответ #7 : 21.04.2011, 08:50:38 »

Вот теперь постепенно начинает проясняться…
Давайте уточним задачу:
1. Взять все коды товаров из синих ячеек в столбцах D на листах "вкл1" и "вкл 2".
2. На листе "итог1" сформировать таблицу из кодов товаров, соответствующих этим кодам названий товаров (зелёные ячейки из столбцов С), ценам (оранжевые ячейки столбцов Н) и единицам измерения (жёлтые ячейки столбцов F).
А теперь вопросы:
1. Коды товаров в столбцах D на листах "вкл1" и "вкл 2" могут повторяться?
— если НЕТ, то при чём здесь выбор уникальных значений?
— если ДА, то какие из названий, цен и единиц измерения следует считать"правильными" и переносить на лист "итог1"?
2. А где же в примере ваш не работающий макрос, который надо запускать с "итог1" и который нужно подправить? Улыбка
Записан

С уважением, Алексей
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 831



Просмотр профиля WWW
« Ответ #8 : 21.04.2011, 12:22:30 »

Baters, а это случаем не продолжение вот этой темы старого форума?
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
baters
Старожил
****

Репутация: +9/-0
Офлайн Офлайн

Сообщений: 382


Просмотр профиля E-mail
« Ответ #9 : 21.04.2011, 18:49:35 »


А теперь вопросы:
1. Коды товаров в столбцах D на листах "вкл1" и "вкл 2" могут повторяться?
— если НЕТ, то при чём здесь выбор уникальных значений?
— если ДА, то какие из названий, цен и единиц измерения следует считать"правильными" и переносить на лист "итог1"?
2. А где же в примере ваш не работающий макрос, который надо запускать с "итог1" и который нужно подправить? Улыбка

Коды могут повторяться, считать правильными можно любые цены и ед измерения, они одинаковые.

В примере макроса нет Грустный он в начале этой темы выложен. Но если нужен могу его в пример вставить.
Записан
baters
Старожил
****

Репутация: +9/-0
Офлайн Офлайн

Сообщений: 382


Просмотр профиля E-mail
« Ответ #10 : 21.04.2011, 18:51:16 »

Baters, а это случаем не продолжение вот этой темы старого форума?

Ага, именно оно Улыбка

PS хорошая однако память...
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 831



Просмотр профиля WWW
« Ответ #11 : 21.04.2011, 18:59:17 »

Ага, именно оно Улыбка

PS хорошая однако память...
Между прочим это Вы должны были указать ссылку на ту тему, а не я :-)
« Последнее редактирование: 21.04.2011, 19:02:01 от The_Prist » Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Alex_ST
Постоялец
***

Репутация: +13/-0
Офлайн Офлайн

Сообщений: 156


Просмотр профиля
« Ответ #12 : 22.04.2011, 09:06:22 »

baters,
пока я пишу макрос, скажите, пожалуйста, а вам действительно нужна эта куча имён диапазонов (40 штук!), которые есть в вашем примере?
 Вы их в дальнейшем используете в формулах или это "хвосты" и их можно все спокойно убить чтобы не путались под ногами?
Записан

С уважением, Алексей
Alex_ST
Постоялец
***

Репутация: +13/-0
Офлайн Офлайн

Сообщений: 156


Просмотр профиля
« Ответ #13 : 22.04.2011, 14:05:49 »

Ну вот, доделал. Пробуйте.
Не дождался вашего ответа про лишние имена диапазонов, поэтому чистите их сами.
Только не удаляйте имена диапазонов, которые ввёл я для удобства работы:
NAZV , NAZV1 , NAZV2 ,
KOD , KOD1 , KOD2 ,
EDIN , EDIN1 , EDIN2 ,
CENA , CENA1 , CENA2

использование имён позволяет не привязываться жёстко в коде к именам листов и расположению на них ячеек, а это - удобство пользователя.

В примере кроме основного макроса CombinePrice есть ещё и CombinePrice1 - это первый вариант, построенный по тому же принципу, что и окончательный, но в нём используется предварительная передача диапазонов ячеек с листов в массив и последующая обработка массива.
Вообще-то работа с массивами намного быстрее работы с ячейками листа (диапазонами).  Это особенно заметно при очень больших объёмах данных (тысячи строк).
Но при работе с массивами теряется гибкость кода. Там уже так просто перемещать диапазоны исходных данных нельзя.
Выбирайте, что для вас важнее: скорость или удобство.


[вложение удалено Администратором]
« Последнее редактирование: 22.04.2011, 14:15:12 от Alex_ST » Записан

С уважением, Алексей
Alex_ST
Постоялец
***

Репутация: +13/-0
Офлайн Офлайн

Сообщений: 156


Просмотр профиля
« Ответ #14 : 22.04.2011, 14:39:06 »

Вот ещё чуть "полирнул" комментарии
К стати, ещё на всякий случай (вдруг у вас такой нет) добавил кнопочку и макрос для вывода имён диапазонов в активную ячейку листа. Посмотрите, может часть имён лишняя?

[вложение удалено Администратором]
Записан

С уважением, Алексей
Страниц: [1] 2 3 4  Все   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru