Привет от собратьев по разуму.
Вопрос был задан там тоже и ответ я написал тоже там:)
Вопрос был задан там тоже и ответ я написал тоже там:)
|
11.01.2021 14:49:12
То что циклом понятно)
1) При нажатии на кнопку в первый массив с размерностью arr(1 to 9,1 to 3) записываются данные из таблички с активного листа. 2) Создается второй целевой массивnew_array(1 to 4,1 to 3) куда надо поместить отфильтрованные строки из первого А вот как циклом зафигачить из первого во второй ,что то не выходит, глаз замылился. Размеры второго я сознательно уже подогнал под количество строк с учетом выборки. Чтобы сэкономить время на решение. Вот тестовый код на чем остановился
Файл также приложил, при нажатии на кнопку должен заполняться массив new_array(1 to 4,1 to 3) отфильтрованными значениями из первого arr(1 to 9,1 to 3) Прошу помочь.
Изменено: - 11.01.2021 15:25:51
|
|||
|
|
|
|
11.01.2021 14:05:56
Здравствуйте, возник небольшой вопрос добавления отфильтрованных значений из одного двумерного массива, в другой .
Есть двумерный массив VBA , который содержит в себе небольшую табличку (он у меня уже заполнен и содержит данные):
Размерность нового массива new_array(1 to 4,1 to 3) соответственно. Подскажите как отфильтровать первый массив и добавить во второй 4 строки (это те строки по которым значение столбца Код <>0 включая первую строку заголовок) |
||||||||||||||||||||||||||||
|
|
|
|
22.11.2019 15:52:56
Если так, то можно абстаргироваться от API функций и реализовать при помощи встроенного контрола типа label на форме. |
|||
|
|
|
|
09.10.2019 14:51:22
Вы просто не шарите о чем говорите, потому что большого практического опыта в создании баз данных у вас нет) |
|||
|
|
|
|
01.10.2019 17:33:33
Да, конечно, для нормальной скорости и защиты данных ,сами базы только на SQL . Акс только как клиент, да и эксель тоже. Вопрос как лучше экселю работать с SQL больше философский. Можно в экселе писать запросы к серверу, можно с сервера выгружать в эксель нарезанные данные. Тут дело вкуса. Можно запилить отдельную статью опросник, но в этом направлении проблем нет в общем то.
|
|
|
|
|
|
01.10.2019 17:15:11
Если говорим про первую, то обычная разделенная, без посадки на сервер. Попросили сделать в классическом варианте, чтобы потом можно было в случае чего подпиливать силами местных умников. Серверная часть на общем файловом ресурсе. Но это все сознательно просили, чтобы было понятно и знакомо. И на русском еще попросили названия системных полей в таблицах. Что просили то и сделал.
С нормализацией данных и индексами неплохо заморочился, поэтому вес серверной части был небольшой, около 12мб. (с экспортированной статистикой уже, за 2 прошлых года.) Проект не очень большой , но вышел крепенько : Остальные - на MS SQL и MySQL. Аксесс как клиент только (в случае MySQL клиент ч/з MySQL odbc driver.)
Изменено: - 01.10.2019 18:44:21
|
|
|
|
|
|
01.10.2019 16:23:57
Потом что еще по теме топика (связка access+excel) - какие практические применения. Я по роду деятельности отношусь к работникам сферы закупок , логистики, supply chain.. Непаханное поле для любителей excel и access (планирование отгрузок, расчет бюджета, аналитика эффективности поставок, ABC,XYZ анализ, моделирование стрессовых ситуаций в бизнесе, антикризисные меры и способы решения данных ситуаций. ) Все опорные модели ,с последующей защитой естественно формировались в Excel. Пульт управления экселем был реализован в аксессе. Просто из за того что, GUI в аксессе получше. Далее - связка Excel и Access неплохо зарекомендовала себя при генерации полного комплекта товарно сопроводительных документов для таможни и склада . Пользователи вели полный учет данных в аксессе (досталось от предшественников) , удалось малой кровью создать шаблоны и описать все вариации импортной и экспортной документации ,в зависимости от условий поставки(инкотермс) и генерацию всего комплекта нажатием на одну кнопку. При предыдущем способе изготовления документов (45-50 минут) удалось сократить время до 1 минуты. Только на подпись оставалось отнести. И одно из самых то главных откровений по теме топика )) Именно эта связка (а наверное просто любовь к программированию и структуризации информации), проработка бизнес модели, с последующей реализацией в и возможность алгоритмизировать и структурировать информацию в разрезе своих бизнес процессов и выдача более точных прогнозов итд итп привела к хорошему карьерному росту со всеми последующими плюшками.) |
|||||
|
|
|
|
29.09.2019 17:58:52
По теме топика, чтобы не потерялась нить) С VBA Access ,Excel активно начал взаимодействовать с 2009 года, с тех пор компьютер не знал покоя
Потом захотелось не привязываться к десктопному приложению и повторить функционал в web, чтобы проекты работали отовсюду через браузер, без привязки к драйверам, библиотекам . Пришлось поботанить PHP+JS+HTML. Далее захотелось научится писать клиент серверные приложения на каком либо взрослом языке. Решил попробовать себя в роли Андроид разработчика . Пошел на курсы по JAVA (Котлин решил не трогать). После Java стало понятно, что VB,VBA Excel/Access это детские фантазии)) Если вы программист по основному роду деятельности (я кстати никакого отношения не имею к программированию по своему функционалу и должности), изучать VBA Excel/Access это еще та могилка. Excel/Access сам по себе является могилкой для программиста. Офисный кодинг позволит слепить по быстрому заплатку в бизнес логике предприятия, помочь с красивыми отчетами, группировкой информации, накидать свою базку для решения проблем на уровне небольшого отдела компании, но не более. И если вы вдруг захотите позиционироваться как программист VBA и получать к примеру условно среднюю зарплату кодера со стажем 4-5лет - 125-130 т.р. , то любителей VBA ждет обломинго. Средний показатель зп на рынке по VBA - 55-60 т.р. С дополнениями функционала в виде эникейщика. Писать отдельно проекты в VBA на заказ (курсовые,лабы, контрольные в расчет не берем.) тоже занятие так себе. Студентам вы сможете конечно помочь за небольшую мзду, и сделав за неделю заказов этак тыщ на 15 наверняка тоже будете чувствовать себя героем, но это тупик, так как делая контрольные и лабы вы не развиваетесь и не работаете над реально серьезным проектом, который требует полной отдачи и соответственно нормально оплачивается. Нет также в чистом Excel /Access такого понятия как продукт, который можно сделать и продавать множество раз (ну к примеру за год на одном созданном проекте заработать 2-3 млн рублей.) Офисный кодинг не для этого. Так что тем кто хочет реально развиваться в области кодинга с соотвествующей компенсацией своих усилий - пора расчехлять талмуды с C++,или Java, или C#, там больше движухи, больше напрягается мозг и больше плОтют. Там реально поймете для чего нужен ООП и что это такое на самом деле. |
|
|
|
|
|
22.09.2019 15:08:51
Большое спасибо всем за ответы!
В общем еще раз огромное спасибо за участие в обсуждении, буду экспериментировать, материала собрал много. |
|||||
|
|
|
|
20.09.2019 17:37:29
Да, спасибо,видал) Это самая большая и проработанная библиотека в плане парсинга json. Там есть все возможные сценарии и возможность создать любой шаблон. Но она при определенных условиях подлипает и замедляет работу приложения (Что в экселе,что в аксессе. В Экселе при большом количестве записей начинает тупить безбожно. В аксессе ситуация по скорости процентов на 25-30 получше, но тоже не нравиться.) Возможно удастся немного подпилить, работаю над этим)
Во время поисков библиотек параллельно нашел самый краткий и простой формат обработки json. Вот ,могу поделиться, для экселя как раз идеально подходит. На русскоязычных сайтах не нашел, на одном зарубежном . Все гениальное просто, всего семь строк самого парсера. Он не обрабатывает по умолчанию проблемные значения в Json, но приятен с позиции восприятия программиста VBA . В принципе я его подточил немного, вот код:
И написал под него небольшой тестовый код PHP на стороне веб сервера (выгрузка происходит из небольшой тестовой таблицы в базе на MySQL):
Изменено: - 20.09.2019 17:46:31
|
|||||
|
|
|
|
20.09.2019 15:56:31
sokol92,
Отлично, спасибо! Сейчас потестим и ваш вариант Но ваш пример это функция encode , то есть вывода данных к примеру с листа экселя и передачу его к примеру на сервер.) Парсер это наоборот-когда вы декодируете сообщение , получаемое из определенного источника (в частности с сайта, или текстового источника.)
Изменено: - 20.09.2019 16:08:40
|
|
|
|
|
|
20.09.2019 14:12:31
Да, в этот плане попроще, выводимый Json имеет четкую структуру, порядок и количество выводимых полей не меняется. Но присутствуют запрещенные /нерекомендуемые значки в самих значениях: " ' // / \ {}} И их как то надо обработать.
C VBA уже достаточно давно ,больше 10 лет,проблем нет, прошу подсказать самый крутой по вашему мнению парсер VBA -> Json (Можно в виде класса, функции, чего угодно) Ключевое требование, чтобы мог справляться с нестандартными данными в значениях выводимых полей в Json. |
|
|
|
|
|
19.09.2019 22:30:24
Приветствую всех! Подскажите пожалуйста, какой по вашему мнению лучший парсер в связке VBA-Json?
Есть одно условие, с которым мне придется смириться к сожалению, не от меня зависит- в ответах Json время от времени будут попадаться в полях (в значениях полей ,выгружаемых в Json) символы типа таких: " ' // / \ {}} . и прочие кракозябры. |
|
|
|
|
|
25.07.2013 14:28:26
Так, вот совсем упростил:
Образец приложил
Изменено: - 26.07.2013 11:14:25
|
|||
|
|
|
|
25.07.2013 14:03:12
Вот и все, надеюсь ответ на вопрос дал. P.S. Привет всем с сайта про MS Access
Изменено: - 25.07.2013 21:48:12
|
|||
|
|
|
|
25.07.2013 13:51:05
Получил вопрос от автора топика , но уже Вконтакте.
Вопрос заключается на самом деле в следующем- Необходимо при изменении значения ячейки поля (к примеру А1) выводить в соседней ячейке (к примеру B1 ) текущее значение времени в формате Now() , но обязательно всегда чтобы отображалось Московское Время, независимо от региона ввода - Нью Йорк это будет, Новосибирск или Пекин. Проблему решил интересным способом, на изменение значения ячейки можно повесить следующую процедуру:
При изменении ячейки можно обращаться к данной процедуре в качестве вставляемого параметра. Данный код обращается к сайту эталону и выгребает оттуда данные по московскому времени с точностью до секунды. |
|||
|
|
|
|
13.12.2012 22:34:56
Ребят, большое спасибо!!! Выручили. Ларчик просто открывался оказывается. А если этот диапазон постоянно будет прирастать вниз новыми значениями? То есть со временем количество строк постоянно будет увеличиваться динамически. Как задать,чтобы нижний предел конечной строки был плавающим и к примеру не зависел от A10? Циклом надо предварительно прогонять весь диапазон и определять границы и только потом передавать в качестве переменной в выражение ("A2:переменная_моя")? Прошу заранее извинить за ламерские вопросы, ибо подкован в aсcess vba , с экселевскими кузявностями не так часто сталкиваюсь). Тут в принципе облегченные условия. можно сказать что поле "значение" по определению не может быть пустым (где то незаполненным), так как источником значений данного поля служит поле типа PRYMARY KEY и AUTO_INCREMENT c MS SQL server.
|
|
|
|
|
|
13.12.2012 22:04:08
Привет всем!
Возник немного нестандартный вопрос по использованию EXCEL+VBA Представьте себе вертикальный диапазон поля "ЗНАЧЕНИЕ" в рамках одного столбца: ЗНАЧЕНИЕ 23 65 45 12 78 96 54 14 96 12 87 Подскажите пожалуйста, как можно организовать вывод сообщения в формате msgbox()значения текущей ячейки данного столбца при двойном нажатии левой кнопки мыши на любом значении в данном столбце. В экселе нет таких понятий как рекордсет и текущая запись формы как понимаю. Как можно в нем зацепиться зацепится и вытащить на dblclick значение текущей ячейки? |
|
|
|
|
|
27.10.2011 12:34:17
Уважаемые коллеги, здравствуйте!
Возник вопрос по поводу приведения данных в нормальный вид. Представьте, что есть список, который я получаю со склада. Это например столбец такого вида: ПРИБЫТИЕ 02,01,11, 02,01,11, 03,01,11, 03,01,11, 03,01,11, 03,01,11, 03,01,11, 04,01,11, Обратите внимание, что склад неправильно пишет дату. Разделяет цифры запятыми. Как можно убрать автоматом запятые, чтобы вид был такой 02.01.11 02.01.11 03.01.11 03.01.11 То есть был нормальный формат ДАТА С Уважением, Сергей |
|
|
|
|
|
17.02.2011 18:28:40
Ребята, нашел процедуру:
If InputBox("To PROTECT all sheets, enter the password below:") <> "321" Then Exit Sub For Each Worksheet In Worksheets Worksheet.Protect Password:="mypass", _ DrawingObjects:=False, _ Contents:=True, Scenarios:=False, _ AllowFormattingCells:=False, _ AllowFormattingColumns:=True, _ AllowFormattingRows:=True, _ AllowInsertingColumns:=False, _ AllowInsertingRows:=True, _ AllowInsertingHyperlinks:=False, _ AllowDeletingColumns:=False, _ AllowDeletingRows:=True, _ AllowSorting:=False, _ AllowFiltering:=False, _ AllowUsingPivotTables:=False Next Worksheet End Sub Все работает, ок. но как в этом случае разблокировать программно же.. |
|
|
|
|
|
17.02.2011 17:29:18
Private Sub CommandButton1_Click()
Первый раз пишу на Excel VBA, вот что то наклепал по быстрому, но компилятор ругается.. Dim Sht As Worksheet Sht = лист1 Sht.Protection.AllowDeletingColumns = False Sht.Protection.AllowDeletingRows = False Sht.Protection.AllowFormattingCells = False Sht.Protection.AllowFormattingColumns = False Sht.Protection.AllowFormattingRows = False Sht.Protection.AllowInsertingColumns = False Sht.Protection.AllowUsingPivotTables = True Sht.Protection.AllowSorting = True End Sub Помогите пожалуйста |
|
|
|
|
|
17.02.2011 17:08:18
Уважаемые знатоки, здравствуйте!
Возник вопрос по экселю следующего характера: Какую процедуру можно навесить на кнопку, чтобы запретить редактирование/изменение/добавления записей на лист приложения. Но доступ, копирование чтобы было возможно. Очень большой опыт с работой access VBA, а вот с экселевским VBA пока не разобрался.. С Уважением, Сергей |
|
|
|
|