Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 23 След.
VBS против Application.Run
 
Цитата
tula19 написал:
А все таки, почему теряется связь, если книга закрывается макросом, не думали ?
Скорее всего происходит сбой, вроде такого, который происходит при удалении листа во время выполнения макросов. Сам не проверял, просто видел тему про это. Как это точно происходит сказать сложно, но можно примерно представить, что когда книги открываются с помощью Application.Run, то они открываются в том же процессе Экселя загружаются в его память, и их VBA-код загружается в память этого процесса и в его com-расположение, и выполняются в том же потоке, что и запускающий макрос. Затем когда книга закрывается, Эксель выгружает ее из памяти и выгружает ее vba-код, и вот этот момент, очевидно, не проходит безболезненно для всего vba-хоста Экселя, происходит какой-то сбой и прерывание его работы. В vbs этого не происходит, потому что в нем априоре все происходит в чужом процессе (открытие книг и выполнение макросов) и не влияет на его хост (WSH). Если в VBA запускать макросы, также как в VBS (т.е. из другого процесса Эксель) то наверняка ни какого сбоя не будет.
Изменено: testuser - 19.06.2025 11:59:45
Эксель "Не отвечает", после нажатия на кнопку вычислить.
 
Val лучше убрать, поскольку он не правильно преобразует числа с запятой, при этом шаг цикла (h) получается равным нулю и цикл становится безкончным что вызывает зависание и сбой.
Код
Private Sub CommandButton1_Click()
    Dim a, b, h, m As Single
    
    a = TextBox1.Text
    h = TextBox2.Text
    If h <> 0 Then Else Exit Sub
    m = TextBox3.Text
    b = h * (m - 1) + a
    
    Debug.Print "x", "y"
    
    For x = a To b Step h
        y = (x * x * x * x + 3) * Sin(6 * x)
        Debug.Print x, y
    Next
End Sub
Изменено: testuser - 12.06.2025 17:18:34
Маркос смещения экрана
 
Код
Sub ScreenOffset()
    Dim sAdr$
    sAdr = Range("B2")
    Application.Goto Range(sAdr), True
End Sub
Программирование между прошлым и будущим: VB/A, ООП и альтернативы
 
Цитата
БМВ написал:
Можно расслабится
А я и не напрягался. Просто решил порассуждать, поскольку есть о чем. Возможно, то что я здесь накатал, ни кто не будет читать, это поянтно, обычно заходишь в тему, видишь много-текста и сразу нафиг-нафиг.. Но более кратко, одна из основных мыслей, которых я бы хотел сообщить, что не все так в порядке и не все однозначно в мире программирования, слышал даже такие высказывания, что мол некий кризис существует. Такие ведущие и гигантские языки программирования, как C++, Java, JS и н.др. подвергаются критике. Выше уже упоминалась Java, в которой не может быть функций на верхнем уровне а только класс. Почему-то в Котлине сделали такую возможность, хотя Котлин реализует это за счет костылей, скрыто создавая экземпляры пустых классов для таких функций, поскольку jvm этого не поддерживает. Почему-то создали Type Script, являющийся надстройкой надо JS, чтобы добавить псевдо-типы в JS. И т.д, и т.д.
Изменено: testuser - 27.05.2025 00:55:43
Программирование между прошлым и будущим: VB/A, ООП и альтернативы
 
Чтож продолжу повествование.
Есть такая полезная вещь, как холивары. С одной стороны это часто бывает "спор не о чем" с другой стороны это возможность многим высказаться насчет разных тем и с др. возможность узнать чье-то мнение и что-то новое для себя. Время холиваров конечно уходит (сейчас вообще не понятно что приходит, с появлением новых поколений ИИ), но у многие скучают по тем временам, что можно понять по реакции сообщества на некоторые обсуждения. Допустим этой весной, кто небрежно чего-то набросил на вентилятор в полу-забытой теме "win vs lin" на киберфоруме и внезапно тема ожила, причем на довольно-таки длительный период. Причем градус обсуждения там поднимался чуть выше среднего "по палате" вследствие кто-то даже резонно заметил, типа "вы чего из-за г.. такой шум устроили". Я, почему-то, тоже не мог пройти мимо этой темы. Зашла речь про консоли и мне стало интересно, что такого интересного и магического в консолях и почему их все еще используют. Открыл я power shell и просто ни чего не увидел, я не увидел там подсказок при вводе.. И в тот момент, мне пришла, как мне кажется, одна умная мысль, а нафиг нужен этот power shell. Если взять vba насоздавать там функций, классов для работы с файлами, процессами и т.д. и т.д и т.д. то в результате можно получить нечно лучшее чем  ps. Immediate в место консоли и, в результате можно получить объектную модель, где можно через точку увидеть все функции и методы, и не надо заучивать комманды и можно постоянно это дополнять какими-то своими новыми функциями. Возможно не vba, а какая-то другая среда разработки, но суть, почему не использовать данный принцип и как следствие из этого вопрос - нужны ли еще консоли в 2025 году? Если бы я был сисадмином, то наверное так и сделал свой системный мини-фреймвок на vba.
Проблемы отладки формул в Excel
 
Кстати в Npp недавно появилась подсветка синтаксиса формул Excel.
Программирование между прошлым и будущим: VB/A, ООП и альтернативы
 
Кстати заглавие понравилось, я бы еще много чего мог добавить, но это под настроение т.ск.
Изменено: testuser - 26.05.2025 07:48:47
Курсы по VBA
 
Цитата
БМВ написал:
не тратьте время, товарищу просто скучно,
Ну мне тоже было скучно, я вот тоже, т.ск. высказался )
Курсы по VBA
 
TestAccount4, а зачем спрашиваешь, потроллить?
Программирование между прошлым и будущим: VB/A, ООП и альтернативы
 
_
Изменено: testuser - 26.05.2025 16:19:48
Курсы по VBA
 
Цитата
TestAccount4 написал:
а курсы по VBA какие-нибудь есть?
не знаю, не интересовался просто, хотя тема не нова поиск в руки и вперед, как г-тся )
Курсы по VBA
 
Вообще, как я считаю, VB/A, в определенный момент истории был более лучший чем многие языки, по синтаксису, по общей парадигме, но в виду условий, и целей для которых он появился, он конечно не был развит, до уровня Delphi, там, 2000-каких-нибудь.. Сейчас, конечно, можно сказать, что и Делфи сильно не взлетел, но, вот если бы это был VB.. Сейчас, вообще интересное время, много пишут, говорят, о том, что как-то не так развивалось программирование, Егор Бугаенко, допустим, говорит, что ООП какое-то не правильное и как-то не так развивалось. И вот, в правду, допустим, взять язык Java. Почему все должно быть в классах, почему точка входа у программы должна быть классом, и вообще, везде ли нужны и важны классы, или можно как-то сделать по другому или просто использовать функции? Если что я не программист, я коллекционер марок по программированию, просто люблю что-нибудь посмотреть и пообсуждать про программирование, так что смело можете кидать в меня тапком. Интересно, просто все это смотреть, когда сейчас обо всем этом говорят. Да, кстати, в разных языках все может быть по разному реализовано, и ооп, может быть другим, не только классы, но динамическая типизация, все-таки не должна была стать преобладающим трендом.. Кстати смотрел одно видио недавно, там интервюировали одного из разработчиков языка Crystal, это серьезный чел, занимался программирование с 90х, низкоуровенщик. Так вот на врос, какие ключевые преимущества он бы выделил у языка (по моему как-то так это звучало) он отвечал, что это приятный синтаксис в котором есть полнотекстовые английские if then и потом обязательно end, так вот VB он тоже как раз про это, и в ближайшее время мы скорее всего увидим таки продолжение истории этого языка - Twin Basic, для многих, наверняка это важно, хотя многим возможно придется только увидеть, но не "пощупать" учитывая намеченную стоимость продукта и н.др. факторы, про которые умолчим..
Курсы по VBA
 
В 2019-20 VBA по опросам на stackoverflow был самым "страшным" языком программирования, в 2022 она поднялся только на две позиции в этом рейтинге.. )
https://fossbytes.com/stack-overflow-most-loved-dreaded-wanted-programming-languages-in-2020/
https://survey.stackoverflow.co/2022/#most-loved-dreaded-and-wanted-language-love-dread
Как вставлять большие таблицы из Excel в Word? Это ужасная боль
 
Цитата
Sanja написал:
Еще есть программы вёрстки текста, как для газет/журналов
Да слышал, некоторые хвалят (название забыл)
Как вставлять большие таблицы из Excel в Word? Это ужасная боль
 
dimwits, попробуйте другие оффисные пакеты (не MS) возможно там данная ситуация будет выглядеть лучше. Сам не знаком, но просто как идея.
Как в динамическом массиве применить функцию (СМЕЩ?) для определенного столбца
 
Евгения, можете показать пример файла?
Создание резервной копии при закрытии файла
 
При сохранении будет создаваться рез. копия, при условии, что в каталоге файла есть подпапка BackUp. Положить в модуль книги.
Скрытый текст
Изменено: testuser - 15.05.2025 09:53:17
Вычислительные возможности эксель и их увеличение.
 
Цитата
уважаемые программисты.
С точки зрения программирования
Р7 офис, Импортозамещение аналог excel
 
Цитата
sokol92 написал:
выдвинутые гипотезы (например, про SetValue и GetValue) можно превратить в  утверждения .
Глянул, кстати, SetValue довольно не большоая процедура, плохо ориентируюсь в JS, но увидел там такую строчку
Код
worksheet.workbook.oApi.onWorksheetChange(this.range.bbox);
Это типо запуск события onWorksheetChange или что? В справке про события ни чего нет. Вообще, я в нетах видел люди пришут, что для больших проектов, типо, чистый JS не комильфо, лучше использовать Type Script
Скрытый текст
Изменено: testuser - 02.05.2025 06:45:23
Р7 офис, Импортозамещение аналог excel
 
У Либре тоже не все гладко.
Р7 офис, Импортозамещение аналог excel
 
Тоже досмотрел, докладчик тоже понравился, вопрос был действительно очень "коварный" )
Изменено: testuser - 30.04.2025 17:24:45
Р7 офис, Импортозамещение аналог excel
 
Цитата
sokol92 написал:
Функция Msgbox (или аналог) появилась?
Там как раз было про это, как показать сообщение, как включить режим дебаггера. Дальше я не смотрел.
Р7 офис, Импортозамещение аналог excel
 
Сегодня был вебинар по макросам https://vkvideo.ru/video-171524056_456239403
Автоматизация Excel: open-source набор для бизнес-задач, GitHub репозиторий с open source инструментами для Excel
 
Цитата
sergey_frolov написал:
это платформа, которая много чего умеет, поэтому важно понять что именно нужно
Да много чего накопилось, что можно было запушить (или как там) или форкнуть..
Цитата
sergey_frolov написал:
например, через perplexity.ai на русском языке вопросы про него позадавать
В общем-то и был похожий план, чтож не буду "мучить душу поэта" )
Автоматизация Excel: open-source набор для бизнес-задач, GitHub репозиторий с open source инструментами для Excel
 
Интересный "ресурс".
Цитата
sergey_frolov написал:
поэтому любые Ваши идеи и предложения
Например написать инструкцию, как пользоваться Гитом на минималках, возможно вы используете какую-то автоматизацию. Гит продвинутая вещь, и информация про него всегда сложное, а такого чтобы просто описания как загрузить, обновить, сделать зеркало (что-то меня понесло) один файл.. было бы маст-хев просто.
Изменение массива, являющегося значением Dictionary, Правильный способ изменить значение Dictionary, которое является динамическим массивом
 
Цитата
Сергей написал:
vba это весьма странный и нелогичный язык (после работы с gs от google).
Это наоборот логично, что процедура передачи ссылки обозначается чуть по другому, чем простое присвоение. "Gs" (без гугл) сам по себе это тоже очень странный язык, об этом говорят сплошь и рядом.
Как сделать проигрывание gif на листе эксель бесконечным
 
visors16, у меня работает на Win 8.1 гифка играет без останова. Может быть в более поздних версиях Windows что-то поменялось и вызов таких функций как mouse_event больше не определяется как активность пользователя. Тут я уже врядли подскажу
VBA. Две переменные double с одинаковыми значениями не равны друг другу, в чем подвох?)
 
Цитата
dhead написал:
оба значения вроде как совпадают.
Но на самом деле у них разная бинарная структура. С этим можно справиться если приводить оба значения к строке перед сравнением.
Как сделать проигрывание gif на листе эксель бесконечным
 
Цитата
testuser написал:
Что можно сделать - сообщить системе об активном состоянии с помощью vba
Это неверный вариант. Вот рабочий вариант - имитация активности пользователя с помощью эмуляции минимального движения мыши. Код нужно поместить в модуль листа.
Код
Option Explicit
Private Enum MouseEventFlags
    MOUSEEVENTF_MOVE = 1
End Enum
Private Declare PtrSafe Sub mouse_event Lib "user32" ( _
        ByVal dwFlags As MouseEventFlags, _
        ByVal dx As Long, _
        ByVal dy As Long, _
        ByVal dwData As Long, _
        ByVal dwExtraInfo As LongPtr)

Private Const Interval As Date = #12:00:29 AM# 'интервал срабатывания тймера (29 секунд)
Private NextTime As Date
Private blAnimationOn As Boolean
'
Sub KeepingAnimation()
    If blAnimationOn Then
        'каждые 29 сек. вызывает имитацию активности пользователя (небольшое колебание указателя мыши)
        NextTime = NextTime + Interval
        Application.OnTime NextTime, "Лист1.KeepingAnimation"
        DoEvents
        mouse_event MOUSEEVENTF_MOVE, 1, 0, 0, 0
        mouse_event MOUSEEVENTF_MOVE, -1, 0, 0, 0
    End If
End Sub
'включаем таймер при активации листа
Private Sub Worksheet_Activate()
    blAnimationOn = True
    NextTime = Now + Interval
    Application.OnTime NextTime, "Лист1.KeepingAnimation"
End Sub
'отключаем таймер при деактивации листа
Private Sub Worksheet_Deactivate()
    blAnimationOn = False
End Sub
Изменено: testuser - 30.03.2025 12:52:25
Как сделать проигрывание gif на листе эксель бесконечным
 
Скорее всего это работает так. Компонент Эксель, который проигрывает gif-анимацию фиксирует активность пользователя, и если в течение 30 сек. не происходит какой-либо активности - прекращает проигрывание картинки. Что можно сделать - сообщить системе об активном состоянии с помощью vba. Для этого есть специальные api-функции (не помню точно какие), которые позволяют установить специальный флаг активности в системе. Такой флаг устанавливают, как правило, все программы, которые проигрывают какое-то медиа. Допустим в браузере проигрывается какое-то медиа - видео, аудио или даже Gif-анимация. Браузер при этом устанавливает в системе флаг постоянной активности. При этом все программы, фиксирующие активность/неактивность пользователя будут "видеть" постоянную активность. Допустим программа, включающая заставку экрана, не включает заставку, когда открыт браузер и в нем проигрывается гифка.
Изменено: testuser - 30.03.2025 05:21:53
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 23 След.
Наверх