Надстройка, которая удаляет пустые строки...

Программирование на Visual Basic for Applications
sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Надстройка, которая удаляет пустые строки...

Сообщение sonata » 10.10.2003 (Пт) 16:54

Есть надстройка, которая удаляет пустые строки...
Но проблема в том, что когда я ее устанавливаю,
она появляется в меню Сервис-->Row Delete....(она, видимо, сама добавила себя в меню) и при каждом
вызове добавляется в меню еще раз...У меня уже меню "Сервис" как полоса прокрутки....Что делать?Может кто-нибудь поможет?
Вложения
rowdel.zip
(27.53 Кб) Скачиваний: 75

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 10.10.2003 (Пт) 23:51

можешь попробовать добавить эту надстройку в автозагрузку
C:\documents and settings\Username\Application data\microsoft\excel\xlstart\
это для 2000 xp как путь в 98 выглядит не помню :(
Ничто так не ограничивает полёт мысли программиста, как компилятор

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 11.10.2003 (Сб) 6:42

Не качал и не проверял, но судя по симптомам, просто криво написана надстройка. У оной на событии открытия должно быть добавление пункта меню, а на закрытии - удаление. Последнего почему-то не происходит.
Задачу опиши, может простой способ есть :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 11.10.2003 (Сб) 15:19

Странно, у меня это надстройка при повторных запусках в меню новый пункт не добавила. А чтоб посмотреть код ее, пароль нужен, а его нет. А если такая ситуация о которой ты говоришь, надо либо все меню перед добавлением пунка методом Reset очистить, либо удалять пункт методом delete.
Последний раз редактировалось Vitaly1 13.10.2003 (Пн) 12:09, всего редактировалось 1 раз.

sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Сообщение sonata » 13.10.2003 (Пн) 9:03

Путь к надстройкам:"C:\Documents and Settings\sonata\Application Data\Microsoft\AddIns\"
Путь автозагрузки:"C:\Program Files\Microsoft Office 2000\Office\XLStart\"
Я добавила эту надстройку в автозагрузку,
и удалила ее из каталога AddIns
Но! Этими несложными манипуляциями из меню Сервис->пункты Row Delete
не удалились...
И еще вопрос: в каком случае надстройки надо помещать в каталог AddIns,
а в каком в XLStart?

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 13.10.2003 (Пн) 12:04

Но! Этими несложными манипуляциями из меню Сервис->пункты Row Delete
не удалились...


Причем тут переписывание надстройки и очистка меню от пунктов. Сделай процедуру и запусти ее, и все добавленные пункты очистятся

Код: Выделить всё
Sub ОчисткаГлавногоМеню()
CommandBars.ActiveMenuBar.Reset
End Sub

Andreika
Бывалый
Бывалый
 
Сообщения: 226
Зарегистрирован: 17.04.2002 (Ср) 9:57
Откуда: Russia

Сообщение Andreika » 13.10.2003 (Пн) 12:31

Причем тут переписывание надстройки и очистка меню от пунктов. Сделай процедуру и запусти ее, и все добавленные пункты очистятся
Код: Выделить всё
Sub ОчисткаГлавногоМеню()
CommandBars.ActiveMenuBar.Reset
End Sub



Да, но при этом очистятся и все другие пункты меню добавленные пользователем. :?

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 13.10.2003 (Пн) 12:40

Да, но при этом очистятся и все другие пункты меню добавленные пользователем.

Угу, в этом случаи надо воспользоватся методом delet объектов Controls для удаление одного пункта. Но Sonata задолбается удалять их так, а как я понял, кроме размноженных дублей, других пользовательских пунктов нет

Andreika
Бывалый
Бывалый
 
Сообщения: 226
Зарегистрирован: 17.04.2002 (Ср) 9:57
Откуда: Russia

Сообщение Andreika » 13.10.2003 (Пн) 12:50

Угу, в этом случаи надо воспользоватся методом delet объектов Controls для удаление одного пункта. Но Sonata задолбается удалять их так, а как я понял, кроме размноженных дублей, других пользовательских пунктов нет


Я конечно понимаю, что здесь форум по VBA, но применительно к этой проблеме, мне кажется удалить данные (ненужные) пункты вручную: "Сервис"-> "Нстройка" и т.д.

sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Сообщение sonata » 13.10.2003 (Пн) 12:54

Ребята!
Ну, вы и шутники!
Вроде бы не 1 апреля..., чтобы девушку так разыгрывать и
удалять все пункты меню...
Можно ли удалить конкретный пункт меню?И как?
И еще вопрос: в каком случае надстройки надо помещать
в каталог AddIns, а в каком в XLStart?

sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Сообщение sonata » 13.10.2003 (Пн) 13:00

Andreika писал(а):Я конечно понимаю, что здесь форум по VBA, но применительно к этой проблеме, мне кажется удалить данные (ненужные) пункты вручную: "Сервис"-> "Нстройка" и т.д.

Не так не работает...[/b]

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 13.10.2003 (Пн) 13:12

Sonata держи:

CommandBars.ActiveMenuBar.controls(i).controls(j).delete

где i номер пункта 1 уровня, j - номер пункта второго уровня, который удаляется.

Andreika
Бывалый
Бывалый
 
Сообщения: 226
Зарегистрирован: 17.04.2002 (Ср) 9:57
Откуда: Russia

Сообщение Andreika » 13.10.2003 (Пн) 13:35

sonata писал(а):
Andreika писал(а):...удалить данные (ненужные) пункты вручную: "Сервис"-> "Нстройка" и т.д.

Не так не работает...[/b]


Почему не работает ??? :(

Ладно, поподробнее:
"Сервис"-> "Настройка"
Здесь, появляется окно "Настройка".
Далее кликаем по пункту меню "Сервис": раскрывается пункт меню "Сервис".
Перемещаемся к твоему добавленному пункту "JWak Conditional Row Delete...". Нажимаем на него и неотпуская перетаскиваем в открытое окно "Настройка".
Итог: Один ненужный пункт меню удален.
Для удаления еще одного пункта необходимо его выбрать и перетащить в тоже самое окно "Настройка" и т.д. пока все ненужные пункты не будут удалены.
По окончании удаления нажать в окне "Настройка" кнопку "Закрыть" .

И все :D

sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Сообщение sonata » 13.10.2003 (Пн) 14:04

Andreika писал(а):"Сервис"-> "Настройка"
Здесь, появляется окно "Настройка".
Далее кликаем по пункту меню "Сервис": раскрывается пункт меню "Сервис".
Перемещаемся к твоему добавленному пункту "JWak Conditional Row Delete...". Нажимаем на него и неотпуская перетаскиваем в открытое окно "Настройка".


Спасибо, за столь подробное и понятное объяснение!
Но, к сожалению, этого пункта меню "JWak Conditional Row Delete..."
там нету...М.б. потому, что я удалила надстройку из
папки AddIns? :roll:

sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Сообщение sonata » 13.10.2003 (Пн) 14:10

Vitaly1 писал(а):Sonata держи:

CommandBars.ActiveMenuBar.controls(i).controls(j).delete

где i номер пункта 1 уровня, j - номер пункта второго уровня, который удаляется.


CommandBars.ActiveMenuBar.Controls(17).Controls(1).Delete
Вылетает Subscript out of range...Не может быть такого, что он попытается удалить пункт из редактора VBA?

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 13.10.2003 (Пн) 14:37

CommandBars.ActiveMenuBar.Controls(17).Controls(1).Delete

Sonata, ты чего-то переборщила, :) сервис это 6 пунткт по горизонтали, а номер добавленного пункта N посчитай с верху вниз в раскрывающимся списке пунктов, когда откроешь сервис.
Код: Выделить всё
CommandBars.ActiveMenuBar.Controls(6).Controls(N).Delete

sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Сообщение sonata » 13.10.2003 (Пн) 14:47

:D
Боже мой!!!Какая красота!!!!
Наконец-то все свершилось меню "Сервис" приняло чистый первозданный вид!!!
Спасибо всем большое!
:wink:

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 13.10.2003 (Пн) 15:00

Sonata - ну слава Богу! Я рад, что у тебя получилось! :D


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

    TopList