Это отличный вариант для работы с Oracle, спасибо.
Но вопрос о программном переключении раскладки по умолчанию ещё актуален.
Но вопрос о программном переключении раскладки по умолчанию ещё актуален.
19.11.2015 15:38:04
Нужен универсальный вариант, просто пару строк послать, работать с Oracle через SendKeys нет необходимости, ADODB.Connection тоже не особо нужен, данные из базы в Excel не передаются.
|
|||||
|
18.11.2015 13:40:06
Добрый день.
Допустим, что в ячейках столбца А есть такие данные.
Как правильно всё это запустить? Вот как не получается, потому что команды, начиная со 2-ой, не для cmd а для Oracle:
|
|||||||||
|
27.06.2015 10:57:17
Прошу помочь разобраться с макросом.
Когда добавляю на диаграмму линию тренда (щелчком по чекбоксу), то всё ОК, и, даже если сразу отжать чекбокс, то тоже всё ОК. Проблема возникает, когда выбрано больше 1 чекбокса, тогда удаление корявое. Например, если выбрать 1-ый чекбокс, затем 4-ый, а потом отжать 4-ый, то удаляется не та линия тренда. Отладчик мне не помогает, показывает вроде одно (скорее всего это просто я так вижу), в итоге удаляется другое. Этот же вопрос ещё находится и здесь:
Изменено: |
|
|
30.05.2013 19:07:35
Ещё такой небольшой вопрос: как скопировать изображение активной формы в word.
Получается только скрин диапазона ячеек вот таким кодом.
Или с формой надо что-то типа:
|
|||||
|
29.05.2013 23:43:11
Я только не понял, зачем там Load oFrm (вроде и без этого работает), т.е. если форма открыта, то она обновляется с помощью
а вот если закрыть форму, то при изменении ячейки С3 она не появится (тогда как при изменении С2 появляется; в принципе можно по тому же принципу форму выгружать (unload) и опять show, но просто интересно, как её обновлять не выгружая, а если она закрыта, то перед этим соответственно загрузить, как-то так) Можно изменить часть кода вот так:
Но тогда Excel "думает" и это мерцание заметно. |
|||||||||
|
29.05.2013 21:58:11
The_Prist, спасибо, возьму на заметку.
Но в моём случае "работаем" только с листом данные, соответственно нет необходимости при переходе на другие листы что-либо делать (они просто содержат расчёты). Смысл в том, что если изменяется ячейка С3, то форму можно просто перерисовать (Вы показали это в своём первом ответе), а если изменяется ячейка С2, то закрываем перебором все формы (хотя открыта одна, но я так понял к ней нельзя обратиться) и просто открываем нужную. Я подозреваю, что сделал коряво, но вот пример, как оно приблизительно должно было работать. |
|
|
29.05.2013 19:39:04
Может быть не совсем понятно зачем, просто я хотел бы видеть, как реализовать именно то, о чём я изначально просил. |
|||||
|
29.05.2013 16:19:38
Спасибо, идея местами ясна, но кракозябры скрыли от меня самое главное.
Если написать
то при изменении ячейки $C$3 диаграмма обновляется только для UserForm1, а у меня этих форм 3. Т.е. надо вместо конкретного названия листа прописать значения ячейки $C$2 и вместо userform1 тоже подставить соответствующую форму, но как не знаю. При изменении же ячейки $C$2, например на "куб", надо закрыть активную форму (т.е. UserForm1 или UserForm2, если они открыты) и открыть UserForm3. |
|||
|
29.05.2013 15:14:31
Добрый день.
Ребята, подскажите, пожалуйста, как правильно обновлять диаграмму на форме при изменении ячеек на листе. Как поместить её туда я нашёл пример, вроде подходит, не знаю как программно закрыть активную форму и можно ли обновить диаграмму не закрывая форму. Пример во вложении. Заранее спасибо за возможный проявленный интерес. |
|
|
08.09.2012 18:22:14
Если учитывать, что ИТОГО может находиться не в начале строки, тогда уже необходимо учитывать и полное отсутствие такого слова в диапазоне, что для функции ИНДЕКС особенно актуально, т.к. она походу умеет работать с 0 в качестве аргумента номера строки и поэтому возвратит неверный результат; функция же ПРОСМОТР просто выдаст ошибку.
|
|
|
08.09.2012 15:58:08
К содержимому формулы можно обратиться, написав функцию на VBA.
Я с VBA познакомился недавно,поэтому пока моих знаний хватило только на такое. Функция годится только в том случае, если в ячейке с формулой участвуют только ячейки той же строки, т.е. как в вашем примере. Public Function Find_Error(rng) If Not rng.HasFormula Then Find_Error = "Нет формулы" Exit Function End If Set result = rng.Find(rng.Row, LookIn:=xlFormulas) Find_Error = IIf(result Is Nothing, "Ошибка", "OK") End Function Прикрепил пример, вроде работает. |
|
|
07.09.2012 00:07:10
{quote}{login=vikttur}{date=06.09.2012 11:42}{thema=}{post}Проще
=(A1>3)-(A1<-3) {/post}{/quote} Это скорее называется не проще, а короче. У меня такой вариант тоже был, но считаю, что в формуле должна прослеживаться прямая логика. С таким же успехом можно вместо =ЗНАК(ОТБР(A1/4)) записать =ЗНАК(ОТБР(A1/3)) и ещё бесконечное число формул с делителем от 3 до 4 (можно и функцию ПИ() туда всунуть). А также формулы типа =(A1>3.1)-(A1<-3.1) и т.д., которые отличаются лишь количеством символов, а выбор чисел для сравнения в большей степени случаен. |
|
|
04.09.2012 23:50:29
{quote}{login=Юрий М}{date=04.09.2012 11:25}{thema=Re: Re: }{post}{quote}{login=gekan}{date=04.09.2012 11:21}{thema=Re: }{post}{quote}{login=Юрий М}{date=04.09.2012 10:22}{thema=}{post}Я это понимаю. Но, согласитесь - AfterDoubleClick было бы логичнее: после того, как дважды кликнули :-){/post}{/quote}Ну не могу согласиться.{/post}{/quote}Ваше право. Я говорю лишь о том, что МОЕМУ "уху" более приемлемо :-){/post}{/quote}
Для вас более приемлемым является другое название для этой процедуры, для других такое название и вовсе "несусветная глупость". Разработчики же, вероятно, при выборе названия руководствовались логикой (которая, быть может, не всегда и не всем ясна) и им в этом не откажешь. |
|
|
04.09.2012 23:21:43
{quote}{login=Юрий М}{date=04.09.2012 10:22}{thema=}{post}Я это понимаю. Но, согласитесь - AfterDoubleClick было бы логичнее: после того, как дважды кликнули :-){/post}{/quote}
Ну не могу согласиться. AfterDoubleClick - некоторое действие, которое должно было бы произойти после двойного клика. Но проблема в том, что по умолчанию такое действие уже предопределено. Т.е. после DoubleClick происходит переход в режим редактирования ячейки и по определению приостанавливается выполнение любых процедур. Опять же из справки: Some events can be used to substitute an action for the default application behavior, or to make a small change to the default behavior. BeforeDoubleClick и BeforeRightClick - это 2 процедуры, которые перехватывают стандартное поведение Excel соответсвенно при двойном клике ЛКМ или одинарном ПКМ. И при наличии таковых Excel заранее знает, как себя вести ещё до двойного клика. |
|
|
04.09.2012 21:42:49
{quote}{login=Юрий М}{date=03.09.2012 03:50}{thema=}{post}А Worksheet_BeforeDoubleClick ЛИЧНО я переименовал бы на Worksheet_AfterDoubleClick – ведь мы что-то делаем ПОСЛЕ даблклика. {/post}{/quote}
BeforeDoubleClick - имеется ввиду не перед самим двойным щелчком, а перед процедурой/действием, по умолчанию вызываемой/ым этим двойным щелчком. Из справки: Occurs when a worksheet is double-clicked, before the default double-click action. Ключевое слово здесь - action. |
|
|