|
1 / 1 / 0
Регистрация: 21.01.2020
Сообщений: 184
|
|||||||||||
Excel Нужно сократить код (Один код для разных label_click)22.07.2020, 10:01. Показов 2595. Ответов 47
Метки нет (Все метки)
Друзья, помогите сократить код!
Идет перебор Label_click (1-22), где каждому соответствует ячейка (h2:h23) И если подскажете как обновить данные на Userform без использования кода :
Спасибо
0
|
|||||||||||
| 22.07.2020, 10:01 | |
|
Ответы с готовыми решениями:
47
нужно сократить код! для программы перевода из СС
Нужно сократить код |
|
1 / 1 / 0
Регистрация: 21.01.2020
Сообщений: 184
|
||||||
| 22.07.2020, 12:15 [ТС] | ||||||
|
Burk, Вот весь код формы. Гигантский и не оптимизированный
0
|
||||||
|
Заблокирован
|
||
| 22.07.2020, 12:24 | ||
|
А не оптимизированный? Так вам же не нужна оптимизация, советов слышать не хотите же?
0
|
||
|
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
|
||
| 22.07.2020, 12:37 | ||
|
faust21, ну начинаем всё сначала. Вы должны понимать, что поясняете не себе, а людям, несвязанным с важей задачей. И ваш полный код пока и не нужен, я всё-равно его изучать не буду. Лучше бы было прислать файл. До этого я понимал так, что ваши лэблы находятся на некой форме и есть связь между ней и ячейками листа.
0
|
||
|
1 / 1 / 0
Регистрация: 21.01.2020
Сообщений: 184
|
||
| 22.07.2020, 12:45 [ТС] | ||
|
К сожалению, прислать файл я не смогу, слишком много связанных макросов и ячеек по всей книге, чтобы скинуть ее в рабочем состоянии. Приложу вам Userform, если это как-то поможет.
0
|
||
|
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
|
|
| 22.07.2020, 13:09 | |
|
всё-таки форма, хотелось бы её видеть. С Class Module попозже напишу.
Добавлено через 17 минут при экспорте формы создаются два файла с расширениями frm и frx вы прислали только frm, поэтому вашу форму посмотреть не могу.
0
|
|
|
1 / 1 / 0
Регистрация: 21.01.2020
Сообщений: 184
|
|
| 22.07.2020, 13:11 [ТС] | |
|
Burk, О, точно)
0
|
|
|
1 / 1 / 0
Регистрация: 21.01.2020
Сообщений: 184
|
|
| 22.07.2020, 13:24 [ТС] | |
|
Burk, Попробовал сам открыть и не вышло, переделал
0
|
|
|
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
|
|
| 22.07.2020, 13:39 | |
|
Для примера, все ваши присвоения для лэблов можно сделать в цикле для уменьшения размера проги.
For i=1 to 22: Controls("Label" & i).Caption = Sheets("Лист" & i).Range("A1").Value: next For i = 23 to 44: Controls("Label" & i).Caption =Лист31.Range("f" & i-21).Text: next и тому подобное
1
|
|
|
1 / 1 / 0
Регистрация: 21.01.2020
Сообщений: 184
|
|
| 22.07.2020, 13:58 [ТС] | |
|
Burk, Пробую и не завелось(
0
|
|
|
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
|
|
| 22.07.2020, 14:36 | |
|
faust21, уважаемый, вы думаете, что я не в состоянии создать пустую форму, которую вы мне прислали? С этого начинают студентов учить. Мне такие глюки больше не присылайте, ладно? И так приблизительно ясны ваши проблемы. Беру тайм-аут.
Добавлено через 12 минут faust21, значит какие-то листы у вас имеют дргое название, не ЛистNN. Если они у вас идут подряд, то обращайтесь по номеру Shetts(I). Может там перед Controls надо поставить Userform1. И пришлите файл, это будет проще, чем по поводу каждого оператора переписываться. Когда выкатывается окно об ошибке нажимайте на Debug и когда вы будете наводить мышку на переменную будет светиться её значение и можно понять в чем дело. Шлите файл, иначе разговор будет длинный и мне это может надоесть. Или ищите делайте сами. Я вам накидал схему уменьшения кода. Можете уточнить детали самостоятельно.
0
|
|
|
2752 / 1726 / 779
Регистрация: 23.03.2015
Сообщений: 5,452
|
||
| 22.07.2020, 14:36 | ||
|
faust21,
passedbyz, правду говорит... Непонятно, зачем "рисовать" таблицы на форме, когда есть лист в экселе? Не по теме:
0
|
||
|
1 / 1 / 0
Регистрация: 21.01.2020
Сообщений: 184
|
|
| 22.07.2020, 16:15 [ТС] | |
|
Narimanych, Может я не до конца понимаю, что мне предлагают, но то что я понял мне не нравится. Хочу на отельной форме. Да, получается таблица в таблице, но мне так нравится.
Попробую еще раз разобраться. Спасибо Burk, Спасибо за помощь. Решить вопрос с той ошибкой мне удалось. Присвоения лейблов успешно произведено. Застрял на том, что не понимаю как должен выглядеть перебор label?_click. Подскажете?
0
|
|
|
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
|
|
| 22.07.2020, 19:15 | |
|
faust21, конечно помогу с кликом, я же обещал, не будет времени сегодня, пришлю завтра. У меня тоже есть подобный проект где-то на 60 полей и я тоже эти поля вывел на форму, тем более, что некоторые поля заполняются через свою форму запуском макроса через CommandButton. Удобнее мышкой вставать на нужное поле, когда у тебя всё перед глазами в форме, чем двигать лист влево-вправо, рискуя потерять нужную строку, если не все поля заполняются у человека (у меня строка это один человек) и с учетом того, что заполняет таблицу оператор. А с такой формой заполнения операторы справляются легко.
Добавлено через 2 часа 29 минут faust21, стоп! Только сейчас обратил внимание, что ваши клики ничего не делают кроме как копируют ячейку с одного листа на другой!! И зачем тогда эти лэблы? Я привык к тому, что что-либо меняешь в форме и это изменение должно занестись на лист. Можно просто через проверку изменения значения на одном листе копировать это значение на другой через Worksheet_Change. Либо вместо ваших лэблов создать на форме текстбоксы занести туда значения из листа, а потом, в случае изменения какого-то значения, изменить его на другом листе. Только так.
0
|
|
|
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
|||||||||||
| 22.07.2020, 19:25 | |||||||||||
|
Burk, Там вообще детективная история
там есть копирование, но нет вставки скопированных данных.
0
|
|||||||||||
|
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
|
|
| 22.07.2020, 19:33 | |
|
pashulka, конечно ку-ку и я на своем опыте проскочил мимо этой ерунды. То что там скопировано, может пригодиться в другой жизни. Зато очень хитрое присвоение одной ячейке другой получилось. Да, с этими ребятами ухо надо держать востро, каюсь.
0
|
|
|
2752 / 1726 / 779
Регистрация: 23.03.2015
Сообщений: 5,452
|
|||
| 22.07.2020, 19:33 | |||
|
pashulka,
P.S. Думаю , если будет приведено конкретное техническое задание , всех этих извращений можно было бы давно избежать....
0
|
|||
|
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
|
| 22.07.2020, 19:43 | |
|
Burk, Я там всё облазил... нигде не нашёл использование данных из буфера обмена. Может автор, после работы с формой их использует... в общем, зачем нужно копирование, пока тайна.
0
|
|
|
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
|
|
| 22.07.2020, 19:56 | |
|
pashulka, думаю, что это, как обычно, недоработка преподавателя, а копирование там нафиг не нужно.
0
|
|
|
1 / 1 / 0
Регистрация: 21.01.2020
Сообщений: 184
|
|
| 23.07.2020, 06:42 [ТС] | |
|
Друзья Burk, pashulka, Narimanych, , я очень рад, что мой пост стал таким обсуждаемым и собрал в себе таких опытных людей.
Нужно было сразу оговорить, что образования в области информатики/программирования у меня нет. Никто ничему меня не обучал (семестр курса информатики 10 лет назад не в счёт). Всем этим я занимаюсь потому что МНЕ это интересно. Занимаюсь я этим методом тыка/гугла/ и задавая вопрос на профильных сайтах. По возможности я разбираюсь в коде что к чему, адаптирую его под себя. Дважды один вопрос я не задаю, тк я теперь ЗНАЮ САМ как и что делать. Что касается cell.copy вы абсолютно правы, она там нафиг не нужна. Этот код был скопирован у меня из другого места, поменяно несколько ссылок и оставлено так как есть. Заметил я лишнее, когда создавал пост и дабы не позориться удалил его. В процессе пока я пытался С Вашей помощью как-то оптимизировать свой код, я там столько на колбасил, что пришлось выйти без сохранения, чтобы отправить форму Burk, Что касается самой формы. Да, то что там делается нужно только мне и только. По сути эта форма является упорядоченным отражением другого листа, за исключением того, что по клику можно отметить дату оплаты. Повторюсь, мое видение может быть сколько угодно корявым, не правильным и нелогичным, но в силу своих небольших знаний в области VBA я смог решить задачу именно так. Весь код работает, даже та форма, что я скинул уже доработана, убрано куча лишних лейблов, созданных по ошибке, добавлен новый код и преведено все в эстетический порядок. Мне нужна была помощь лишь в оптимизации... Все ещё надеюсь что вы мне подскажете, но параллельно гуглю и пытаюсь вникнуть в модуль классов. Спасибо за вообще внимание))
0
|
|
|
3306 / 934 / 201
Регистрация: 14.01.2013
Сообщений: 4,776
|
||
| 23.07.2020, 07:57 | ||
|
0
|
||
| 23.07.2020, 07:57 | |
|
Помогаю со студенческими работами здесь
40
Нужно упростить/сократить код функции Как можно сократить код и расположить данные элементы в один целый массив? Код очень долго выполняется, нужно сократить работу по времени Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения
Продолжаю серию постов о дискретно-событийной модели рабочего. . .
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|
|
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
|
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
|
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
|
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика
Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
|