Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 724 След.
VBA. Словарь. Как организовать сортировку собранных ключей по алфавиту в коде
 
Цитата
Jack Famous написал:
Следует понимать, что элементы в словаре хранятся в той последовательности, в которой они добавлялись в словарь
- где-то у microsoft читал, что они не гарантируют совпадения позиций ключа и его итема, поэтому я не верю этой фразе из перфектэксель.
Поэтому в проектах надёжнее к каждому ключу подтягивать его итем, а не брать два параллельных массива, как делают некоторые.
VBA. Словарь. Как организовать сортировку собранных ключей по алфавиту в коде
 
Ключи сортировать можно где угодно, но не в словаре - даже если туда последовательно загрузить уже где-то вне словаря отсортированные ключи никто не гарантирует что они там расположатся в порядке загрузки. Т.к. не это предназначение словаря. Хотя обычно так и лежат как положили.
VBA. Словарь. Как организовать сортировку собранных ключей по алфавиту в коде
 
Доброго дня.
Для тех, кто зашёл сюда в поисках
Цитата
falmrom написал:
помогите осуществить в словаре сортировку полученных ключей
- тут такого решения нет! Да и в общем это и неосуществимо, и не имеет смысла.
Но ключи можно сортировать выгрузив их куда-то, например на лист как выше, или в массив (сортировать этот массив), и затем уже циклом по этому сортированному списку решать задачу.
Замена части текстовой строки. Оптимизация
 
Configure UDFs in Excel Online in Office Online Server
Замена части текстовой строки. Оптимизация
 
Пишите UDF.
VBA скрипт копирование всех данный из файлов excel и вставка в другой файл excel
 
Там где Destination - добавьте нужный сдвиг. Например .offset(1)
Не, лучше 2, типа
Код
 Destination:=ThisWorkbook.Worksheets(1).Range(iRngAddress).offset(2)
Изменено: Hugo - 2 Авг 2019 14:25:53
ВПР частично не работает с внешними связями
 
Если там, где ищите текст - то можно текст и искать. Если не нашли число. Логика понятна?
Даты не форматируются
 
У меня на листе достаточно
Код
=--A2

Да и в коде без проблем преобразует.
Потому что эксель не русский.
Ещё вариант на листе: текст по столбцам (убрать разделители)- готово, отдельно для каждого столбца. Задать нужный формат.
Изменено: Hugo - 1 Авг 2019 16:14:27
Поиск номера элемента массива
 
Т.к. не повторяются - можно при создании массива (ну или сразу после) создать ещё параллельный словарь (ну или коллекцию), куда занести эти значения и номера.
Тогда вместо поиска по массиву можно брать значение из словаря/коллекции уже сразу готовое, без поиска.
Сравнить строки с повторяющимся диапазоном значений, Сравнение строчек с данными на предмет повтора не по одному, а по нескольким значениям одновременно
 
Согласен, так проще, особенно второй вариант.
Сравнить строки с повторяющимся диапазоном значений, Сравнение строчек с данными на предмет повтора не по одному, а по нескольким значениям одновременно
 
В любую. Желательно первой строки таблицы - ну чтоб понятнее было по какой строке результат.
А какой результат - увидите. Не бойтесь, вируса там нет :)
Сравнить строки с повторяющимся диапазоном значений, Сравнение строчек с данными на предмет повтора не по одному, а по нескольким значениям одновременно
 
Uglykid, когда видите символ "=" - это означает что это формула, и её нужно ввести в ячейку.
Как запретить принудительное закрытие userform до истечения определенного времени?
 
Зачем вообще эти строки, и без них работает... если ещё и Private Sub UserForm_Initialize() отключить. Ну и форму чуть подправить.
P.S. Понял, это чтоб убрать возможность выключить крестом... Ну можно вызвать ещё раз, если например юзер выключил не кнопкой, а крестом - пусть опять ждёт :)
Изменено: Hugo - 31 Июл 2019 10:46:15
Как запретить принудительное закрытие userform до истечения определенного времени?
 
Думаю с msgbox ничего не сделать. Но можно создать свою форму, похожую на msgbox, с своим функционалом.
Сравнить строки с повторяющимся диапазоном значений, Сравнение строчек с данными на предмет повтора не по одному, а по нескольким значениям одновременно
 
В лоб:
Код
=(ПОИСКПОЗ(2;B3:U3;0)>0)+(ПОИСКПОЗ(3;B3:U3;0)>0)

и протянуть. Там где не Н/Д, а 2 - нужные строки.
Как обьявить и использовать массив, если наперед неизвестны его размеры?
 
В данном случае вместо массива удобно использовать коллекцию без ключа  -наполняете её сколько получается/нужно, в итоге имеете одномерное собрание значений, что по сути и есть одномерный массив или коллекция.
Вот, не вникая в суть и смысл, только заменил массив на коллекцию:
Код
Sub sreda()
Dim sr As New Collection, s&, d&, dd As Date
s = 1
For d = 1 To 31
    dd = DateSerial(Year(Date), 9, d)
    If Weekday(dd, vbMonday) = 3 Then
        MsgBox "day   " & Day(dd)
        MsgBox "s   " & s
        sr.Add Day(dd)
        s = s + 1
        MsgBox "s+1   " & s
    End If
Next
For s = 1 To sr.Count
    MsgBox sr(s)
Next
End Sub
Изменено: Hugo - 30 Июл 2019 12:08:17
Замена макросом значений в ячейках при открытии книги
 
Ничуть не закономерно. У меня например работает.
Объединение файлов эксель в одну книгу, Объединение файлов эксель в одну книгу
 
Что-то смотрю всем лениво код писать... Мне тоже :(
Но продумал работающий алгоритм:
1. Изучаете что такое словарь. Или коллекция. Или массив. Но это не обязательно.
2. Изучаете как в цикле открывать файлы.
3. Открываете кодом файлы, в словарь для ключа полныйпутькфайлу+имялиста пишите максимальное число из первого столбца нужного листа (кстати, какого? Это ясно только Вам...)
Кстати вместо словаря можно использовать массив, созданный под количество файлов, или с запасом, ну или банально два столбца любого листа любой книги.
4. Когда все файлы открыты, проанализированы, закрыты - у Вас в словаре/коллекции/массиве/листе есть вся нужная информация. Остаётся в целевой книге (можно прямо кодом и создать) прописать формулы, ссылающиеся на нужные ячейки просмотренных книг. Ну а затем всё скопом заменить на полученные значения.
Это если не нужны цвета/заливки/форматы/рюшечки...
Подтянуть цены на товары из таблицы в трех различных валютах
 
И чего это не срабатывает... Вместо указания конкретного номера столбца можно ведь функцию использовать:
Код
=ПОИСКПОЗ(F2;$A$24:$D$24;0)
итого цены:
=ВПР(D2;$A$23:$D$31;ПОИСКПОЗ(F2;$A$24:$D$24;0);ЛОЖЬ)
Изменено: Hugo - 25 Июн 2019 23:32:48
Функция СУММЕСЛИМН принимает буквы за цифры, вопрос касательно ошибки в функции СУММЕСЛИМН
 
Ну правильно - буквы больше цифр...
По формулам я не помогу. Добавьте ещё одно условие.
Макрос удаления сток неправильно работает
 
Ой боюсь не влезет UsedRange в arr...
Но красиво :)
Макрос удаления сток неправильно работает
 
Если таблицу можно сортировать - то думаю лучший результат получите используя макрос от ZVI DelRows:

Но думаю нужно будет его по месту подшаманить - насколько помню по умолчанию там анализируется только только один столбец.
Попробуйте для начала макрос из этой темы ещё разогнать массивами.
И конечно цепочку из AND следует заменить на вложенные IF-THEN, причём с порядком проверки от самого редкого к самому частому.
Изменено: Hugo - 23 Июн 2019 12:34:03
Макрос удаления сток неправильно работает
 
Цитата
ardsa написал:
Но...макрос работает, но без результата (((
- это смотря на каком файле применять - если на первом, то результат есть :)
Но можно макрос ещё ускорить - считывать данные не из ячеек, а из массива. Или для начала не по 4 раза на каждом шаге смотреть что там в Cells(i, 7), а например всего 1 - тоже будет ускорение.
Макрос удаления сток неправильно работает
 
Код
ElseIf Cells(i, 28).Value <> "OR" And Cells(i, 7).Value <> "AC" Then

вот почему
Как записать в формуле число 668-
 
668- - это уже не число, берите его в кавычки: "668-"
Макрос по разнесению таблицы на разные вкладки
 
Цитата
Nordheim написал:
каждый раз пробегать по массиву сверяя метки. в итоге мы имеем количество циклов по одному массиву равное количеству листов
-  файл не смотрел, но по описанию задачи думаю что тут сгодится словарь - сперва в него собрать все метки (каждой как значение идентификатор листа), затем уже нет проблем одним циклом по данным раскопировать каждую текущую строку сразу куда нужно.
В каком формате Excel лучше хранить данные
 
csv - это по сути текст и есть, их можно всю кучу зажать например раром для архивирования.
Как хранить результат обработки - другой вопрос, но думаю нужно как-то группировать чтоб сократить количество файлов.
Как Преобразовать Плоский Список В 2-Образную Кросс-Таблицу В Excel?
 
Ещё как вариант если делать макросом - использовать коллекцию и словарь (ну или пару словарей).
Код писать не вижу необходимости, но алгоритм такой:
1. Учитываем что в данных точно будут Class, Grade, Name.
2. Одним циклом по данным собираем коллекцию значений первого столбца, и в словарь для ключей из сцепки столбцов A|B пишем значение C.
3. Заполняем итоговую таблицу - для каждого значения коллекции из словаяря по ключу извлекаем собранные значения.

Т.е. из коллекции берём "1", из словаря по "1|Class" берём "One", по "1|Grade" берём "Three" и т.д. и пишем в таблицу в соотв. ячейки.
И т.д.
Количество данных практически значения не имеет,  лишь бы памяти хватило. 450 значений это вообще ни о чём...
Блыкание ячеек
 
Скрытый текст
Как сохранить число с нулями, обусловленными примененным форматированием?
 
Как вариант -
Код
Cells(i, 2) = "'" & Cells(i, 1).Text
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 724 След.
Наверх