The okk
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Yuk Цитата: Времени мало, да и нафиг это нужно, разве что развлечения ради | Да у меня тоже не много - я сейчас тремя задачами на работе одновременно занимаюсь. Просто задача интересная. Я вообще оптимизировать решения люблю, алгоритмы хитрые выдумывать. ShIvADeSt Цитата: Как сделать, чтобы при копировании этого листа на имя 16 | Вот эту фразу я не понял... Что значит "копирование листа на имя 16"? Какой лист, откуда копируется и куда копируется? vzbzdnov Такой алгоритм найдет только 1 общий кусок для двух строк. Маску типа file?name для file1name и file2name ему не одолеть. При всей кажущейся элементарности задачи алгоритм, если начать разбираться, не так очевиден. Troitsky Цитата: ну так ручки же есть - самому нарисовать | Самому лениво Цитата: можно и маску использовать (свойство Mask). | Как это облегчит задачу? Цитата: Как сделаешь - выложи код. | Ок. Что-то не пойму, как тут на OnAction прописать вызов процедуры с параметром? Класс для кнопок что ли создавать Но что писать в модуле класса? - Ведь у кнопок на тулбаре нет события Click и способ, который существует для кнопок формы (создать класс кнопок) не подойдет. Простейшая на первый взгляд задача оказалась не такой простой... "Все не только не так просто, но и просто не так" Решил сделать слева тулбар с настройкой видимости листов - поскольку их в проекте предполагается до 150, листать их все в поисках нужного довольно нудно. Скрипт, создающий панель я сделал: Код: Sub AddVisibilityToolBar() Dim msBtn As CommandBarButton Dim wsList As Worksheet 'перерисовка панели On Error Resume Next Application.CommandBars("VisibilityToolBar").Delete On Error GoTo 0 Application.CommandBars.Add(Name:="VisibilityToolBar").Visible = True 'ставим её слева With Application.CommandBars("VisibilityToolBar") .Position = msoBarLeft 'для каждого листа добавляем кнопку For Each wsList In Worksheets With .Controls Set msBtn = .Add(Type:=msoControlButton) With msBtn .FaceId = 643 'на каждой кнопке пишем название соотв. листа .Caption = wsList.Name .Style = msoButtonWrapCaption 'если лист видим, кнопка нажата и наоборот .State = wsList.Visible End With End With Next wsList End With End Sub | Единственный вопрос: как прописать .OnAction, чтобы при нажатии любой кнопки вызывалась процедура, скажем, btn_click(btn.Caption), где btn.Caption - название кнопки, по которой кликнули. Создавать под каждую кнопку свою процедуру - не рационально. | Всего записей: 327 | Зарегистр. 16-11-2006 | Отправлено: 06:58 17-01-2007 | Исправлено: The okk, 12:32 17-01-2007 |
|