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

Страницы: 1 2 3 4 5 6 7 8 9 10 След.
Делимся..., разным
 
Цитата
Alemox написал:
для таких целей и было задумано
Периодически удивляюсь, как людям в голову приходят идеи сделать наоборот.
Я, обычно, сначала делаю скриншот ножницами, а потом в нём "рисую", тут же обратный процесс, сначала нарисовать, а потом шотить. Оригинально!
Берём на возможное вооружение (когда уйду с работы и буду репетитором по "компьютерам").
Перебор строк двумерного массива, способы получить все строки массива
 
Цитата
Hugo написал:
- зачем?
Для дальнейших "извращений".
Цитата
Hugo написал:
И как ключ или значение?
Как значение, естественно.

Общий смысл такой, что я заменяю жуткий SQL запрос, который работает медленно, на "извращения" с массивами и словарями. Работа ускоряется в десятки раз.
В данном случае этот словарь нужен, чтобы связать данные из одной таблицы с другой, через exists.
Суть не в "зачем", а в принципиальной возможности это сделать. Я уже понял, что в VBA невозможно напрямую получить всю строку из двумерного массива. Нашёл способ через WorksheetFunction.Index, потом попробую, приемлемо ли получится по скорости.
Перебор строк двумерного массива, способы получить все строки массива
 
Цитата
Nordheim написал:
а вы обращаетесь при присвоении к одномерному
Так в том и вся суть!!! Я хочу получить всю строку массива целиком, а не один его элемент. Я так понимаю в VBA это невозможно, а жаль.
Перебор строк двумерного массива, способы получить все строки массива
 
Всегда считал, что многомерный массив это массив массивов и для двумерного A(10,10) вызов A(1) должен возвращать одномерный массив, то есть первую строку. Разве в VBA это не так?

Цитата
Jack Famous написал:
В скорости этот метод если и выигрывает, то очень ненамного
Это я как раз и проверяю. Недавно наткнулся, что для словаря For each на пару порядков быстрее чем For i.
Перебор строк двумерного массива, способы получить все строки массива
 
Всегда считал, что многомерный массив это массив массивов и для двумерного A(10,10) вызов A(1) должен возвращать одномерный массив, то есть первую строку. Разве в VBA это не так?
Перебор строк двумерного массива, способы получить все строки массива
 
Цитата
Jack Famous написал:
массив с листа всегда будет с единицы
Не совсем отдуплил, что сие значит. Для меня исторически сложилось, что массивы должны начинаться с единицы, поэтому все модули начинаю с обязательных (для меня строк) Option explicit и base 1
Цитата
Nordheim написал:
Можно заполнять коллекцию строчными массивами
Так я этим и пытаюсь заняться, только со словарём. Хочу засунуть строку как элемент словаря, а оно сопротивляется.
Код
Sub test

Dim PlArr As Variant
Dim OnePl As Variant
Dim i As Long
PlArr = ThisWorkbook.Worksheets("PLAN").ListObjects(1).DataBodyRange
For i = LBound(PlArr) To UBound(PlArr)
  OnePl = PlArr(i)
Next
endsub


Почему в строке OnePl = PlArr(i) вылетает Subscript out of range? Массив PlArr создаётся, показывает, что LBound=1, а UBound=1456, но PlArr(1) - out of range!
Что не так? И как засунуть в OnePl всю строку сразу, а не поэлементно.
Изменено: Мартын - 16 Мар 2020 10:14:54
Перебор строк двумерного массива, способы получить все строки массива
 
Добрый день, планетяне!
Имеется динамический двумерный массив Arr. Чтобы перебрать все его строки, обычно используют способ вроде for i=LBound(Arr) to UBound (Arr).
Возник следующий вопрос: возможно ли то-же самое сделать при помощи for each? Чтобы перебирались не все элементы, а именно все строки.
Изменено: Мартын - 16 Мар 2020 09:39:03
Полное (расширенное) сравнение двух списков (столбцов)
 
Цитата
Alemox написал:
Всё что нам шлют в ответку это сканы в PDF
Ах, по живому резанул! Похоже подобные нелюди везде окопались. В моём случае гады сначала ПЕЧАТАЮТ всё на бумаге, подписывают (а как-же без подписи шариковой ручкой в России?!), потом сканируют в PDF и присылают нам в "электронном виде" (так они это называют). Причём нечётные стороны сканированы нормально, а чётные стороны - вверх ногами. И вот в подобной "радости" мне надо "выщемить" свои строки, которых может и не оказаться.
Цитата
Jack Famous написал:
Расширенное сравнение двух колонок (списков)
Забрал для дальнейшего изучения и потребления, в хозяйстве всё сгодится.  
Загрузка несмежных столбцов Excel в переменную массива VBA, Как загрузить?
 
Цитата
Jack Famous написал:
должно выдать ошибку, либо я чёт не понял
Ошибки нет, просто на листе "очищается" область соответствующего размера, но значений в ней нет. :(
Цитата
Jack Famous написал:
имеет  ряд ограничений
Не знал, хотя это ограничение (Количество элементов не может превышать 5461) явно не работает, ибо у меня выгружается 6900 строк на 25 столбцов.

Цитата
БМВ написал:
как последнее связано с темой.
Ну оно как бы проистекает из темы, являясь её неотъемлемой частью. :)
Намёк понял, ухожу.
Загрузка несмежных столбцов Excel в переменную массива VBA, Как загрузить?
 
неужели никто с этим не сталкивался?
Загрузка несмежных столбцов Excel в переменную массива VBA, Как загрузить?
 
Ещё одна странность.
По наводке многоуважаемого БМВ запихал массив с словарь. То есть каждый элемент словаря это одномерный массив из 25 элементов.
Захотел выгрузить массив Items на лист и столкнулся с ерундой.
Если написать так: то выгружается пустота (пустые ячейки на весь размер массива)
Код
ThisWorkbook.Worksheets("TMP").Range("A1").Resize(col, 25) = DataDIC.Items 
то выгружается пустота (пустые ячейки на весь размер массива)
А вот если записать такие костыли (двойное транспонирование):
Код
ThisWorkbook.Worksheets("TMP").Range("A3").Resize(col, 25) = Application.Transpose(Application.Transpose(DataDIC.Items))
то выгружается то, что нужно.
Почему в первом случае пустота выгружается? Можно-ли избавиться от костылей двойного транспонирования?
Загрузка несмежных столбцов Excel в переменную массива VBA, Как загрузить?
 
Цитата
БМВ написал:
работает во много раз быстрее.
Быстее словаря+массив на умной таблице размером 40000Х56 во сколько раз? Если речь о 2х-3х секундах, то мне не принципиально. Сейчас SQL запросы отрабатывают за 30 секунд. Мне кажется долго, вот я и заморочился.
Цитата
БМВ написал:
Но они могут быть и пользовательскими
почитал по быстрому о коллекциях, никаких преимуществ ДЛЯ СЕБЯ по сравнению со словарями не выявил.
Загрузка несмежных столбцов Excel в переменную массива VBA, Как загрузить?
 
Цитата
Jack Famous написал:
не советую Evaluate
Я уже понял, поэтому буду пользовать массив.
Цитата
Андрей_26 написал:
их можно взять в словарь или коллекцию
18 столбцов в один словарь? Как? Словарь вроде как содержит ключ и значение, то есть одну пару (по сути два столбца), а не 18.
Коллекции вообще не знаю что за звери. Что им соответствует в Паскале или С?
Загрузка несмежных столбцов Excel в переменную массива VBA, Как загрузить?
 
Цитата
Андрей_26 написал:
ни Вам было адресовано )))
не "ни", а "не". это раз, а два это то, что ТС задавал вопрос три года назад. :)
Загрузка несмежных столбцов Excel в переменную массива VBA, Как загрузить?
 
Вот я и проверю, кто победит, SQL или массивно-словарный монстр.
Жаль, что нельзя взять в массив только нужные столбцы, придётся пихать в него всю таблицу.
Изменено: Мартын - 25 Фев 2020 16:01:06
Загрузка несмежных столбцов Excel в переменную массива VBA, Как загрузить?
 
Цитата
Андрей_26 написал:
а лучше приложили файл с небольшим примером
Пример лежит.
Цитата
Андрей_26 написал:
Для чего вам такой массив
Хочу уйти от SQL запроса, который легко и приятно писать, но который слишком медленно выполняется.

Основная мысль - загнать в массив много (19) несмежных столбцов умной таблицы, дабы потом глумиться над ним, различные фильтры применяя с использованием временным словаря.
Изменено: Мартын - 25 Фев 2020 14:59:31
Загрузка несмежных столбцов Excel в переменную массива VBA, Как загрузить?
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
аж 260
Так вот где собака порылась!!!!
Огромное человеческое гранд мерси!!!
Вот истину говорят: "Век живи, век учись, но найдутся те, кто умнее"!
Загрузка несмежных столбцов Excel в переменную массива VBA, Как загрузить?
 
Нет знатоков или проблема не имеет решения?
Загрузка несмежных столбцов Excel в переменную массива VBA, Как загрузить?
 
Цитата
Андрей VG написал:
отработал успешно.
Поясните пожалуйста, как эта функция работает?
Почему работает макрос test1, а второй выдаёт "type mismatch".
Они идентичны, кроме столбца с условием.
IF(TTL[fasad]=""V"", 1,0) - работает
IF(TTL[fasad]=""V"", ""YES"",""NO"") - не работает
В чём может быть проблема?
Изменено: Мартын - 21 Фев 2020 12:52:05
Сетевая игра пинг-понг, кодинг пещерного человека
 
Цитата
БМВ написал:
Сетевая игра пинг-понг в Excel по переписке
Эта штука посильнее Фауста Гётте будет!!!
Как вы монетизируете свои знания excel + vba?
 
Цитата
Jack Famous написал:
У нас пытались внедрить огромную дорогущую систему на базе 1С - ни хрена не вышло. А сейчас я перекрываю большую часть учёта/отчётов как раз с помощью Excel.
Один в один, но только у насне 1С, а SAP. Программа настолько под нас "не заточена", что жуть жуткая. Обслуга и поддержка наёмной фирмы, любой "чих" даже в виде "убрать ненужный столбец из отчёта и добавить нужный" должен пройти кучу согласований, соглашения об оплате и долгой и нудной реализации, обычно 6-8 месяцев на изменение это ОЧЕНЬ быстро. Некоторые изменения ждут очереди по 2-3 года.
Вот в этих условиях Excel выручает неимоверно.  
Как вы монетизируете свои знания excel + vba?
 
Цитата
egonomist написал:
50-60к на руки
Ой чего-то не верится, от слова совсем. Не такой уж Самара закормленный город, чтобы работа с такой зарплатой "на дороге валялась". У нас, в Урюпинске, это зарплата уровня начальника службы в крупной организации или зам.директора - директора в средней или средний доход хозяина двух-трёх продуктовых магазинчиков.
А так основная мода зарплат проходит где-то на уровне 14-15 Круб.
Знакомый в Волгограде начальником отдела инфобезопасности получает 60-70 Круб. так что не верю я в простого помощника по VBA с 50-60 Круб на руки.
Как вы монетизируете свои знания excel + vba?
 
Цитата
vikttur написал:
тогда и молочко бы было
Я столько не выпью! :) Да и стоит у нас молоко из под коровы всего 100 руб за три литра. При моей зарплате могу позволить себе купить :)
Как вы монетизируете свои знания excel + vba?
 
Цитата
anmendel написал:
как вы монетизируете
"Мы молока не видали пока" (с)тырено.
В основном все хотят бесплатно, но некоторые готовы заплатить рублей 100-500. Только один ОЧЕНЬ адекватный мужик попался. Я ему пару программок и табличек сделал и теперь он на работе делает за два часа то, на что раньше тратил неделю. А так как он в "свободное от работы" (читай в рабочее) время параллельно занимается фермерством, то теперь в благодарность за освободившееся время он периодически подкидывает мне то уток, то кроликов, то сало с яйцами. За последние два года он скормил мне уже стадо уток и кролов.
Так что у меня пока не монетизация, а утизация, кролизация и сализация получилась :)
rubberduck - COM-надстройка для VBA
 
Цитата
Jack Famous написал:
как это установить?
я просто скачал ЕХЕ и запустил.
rubberduck - COM-надстройка для VBA
 
Цитата
vikttur написал:
Рекомендует не писать Call при вызове процедуры (говорит - старье это). А мне так нагляднее. Не любит венгерскую нотацию...
Эти предложения я тоже отмёл с негодованием :)
Цитата
vikttur написал:
Не подсадная. И не больничная
Но в названии скрыта тайная "угроза". Всё-же резиновая утка, а не настоящая, значит игрушка. Я вчера полдня с ней проигрался и в итоге ни строчки не написал :(
rubberduck - COM-надстройка для VBA
 
Попробовал "оптимизировать" кое что.
одним из пунктов утка предложила оптимизировать строку: Ad = VBA.Hex(b) & VBA.Hex(a), заменив Hex на Hex$, мол так гораздо более по феншую. Я согласился, в результате получил строку с ошибкой: Ad = VBA.Hex$(b) & VBA.$Hex(a)
Так что, камрады, этой утке полностью доверять нельзя!
DAX: вычислить среднее значение без учета выбросов
 
Цитата
Vladimir Chebykin написал:
или может быть предложит другой для определения выбросов.
Если значения бывают разных знаков, то лучше брать разность модулей или разность квадратов.
Анекдот дня, Постим сюда понравившиеся:)
 
Цитата
Alemox написал:
Jack Famous , может стоит куки почистить?
Я сначала прочитал не ку.., а ко.... Так гораздо глубокомысленнее получается!  :D  
Поиск по 2 значениям в горизонтали
 
Цитата
paff написал:
теперь буду искать, как менять отчеты под формулы
Умная таблица в помощь
Страницы: 1 2 3 4 5 6 7 8 9 10 След.
Наверх