Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Excel VBA

Модерирует : ShIvADeSt

ShIvADeSt (23-04-2007 01:59): http://forum.ru-board.com/topic.cgi?forum=33&topic=8273  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

   

RUSmafia



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

 
 
Обсуждаем вопросы только по Excel VBA
(программирование макросов, скриптов, пользовательских функций и т.п.).
Приветствуются ссылки на ресурсы и справочную литературу по теме.
 
Вопросы по работе с MS Excel, не относящиеся к программированию, задаем в теме Excel FAQ

 
Обратите внимание, этот топик для помощи в изучении и использовании VBA. Посему запросы типа "Напишите мне такой-то макрос, я VBA не знаю и знать не хочу" не приветствуются.
Древняя мудрость: "Накорми голодного рыбой и он погибнет, научи его ловить рыбу и ты спасешь его."(R)
 
Информация общего характера:
  • Список соответствия имен функций в английской и русской версиях Excel
  • Описание Microsoft Excel File Format
     
    Рекомендации:
    Если у Вас есть проблема, не решаемая стандартными средствами Excel (об этом можно уточнить здесь) или требующая автоматизации, попробуйте для начала записать макрос самим Excel через меню Сервис (Tools) - Макрос (Macro) - Начать запись (Record New Macro). Подробнее здесь. В большинстве случаев получившийся код (Сервис-Макрос-Макросы-Изменить) Вас не удовлетворит, но подскажет, какие объекты-методы-свойства использовать.  
    Другой Ваш помощник - Просмотр объектов (Object Browser). Ну и встроення помощь (F1), естественно.
     
    Если Вы в тупике, покажите Ваш код (или часть кода) здесь.  Если вылазит ошибка, цитируйте ее полностью. Если код слишком большой, используйте тeг [more].
    Используйте отладчик - Breakpoints (F9), Watches (Shift-F9), Steps (F8 и др.) Сильно облегчает поиск ошибок.

     
    Рекомендуется к прочтению:
  • Первые шаги с Excel VBA
  • Excel VBA: Приёмы программирования
  • WinApi. Лекция из курса "Основы офисного программирования и язык VBA" (для продвинутых)
  • Daily Dose of Excel (eng.) - тематический блог: советы по работе с Excel и прочие материалы
  • Excel Macros & Excel VBA Code Tips, Tricks (eng.) - советы, трюки и уловки
  • Mr. Excel (forum) (eng.) - весьма оживленный форум по Excel&VBA.
     
    Родственные топики:
  • Вопросы по работе с MS Excel - Excel FAQ - часть 1, часть 2
  • Технические проблемы с MS Office 2003 или Office XP.
  • Word VBA все вопросы по Word VBA туда
  • Access все вопросы по программированию в Access туда
  • Книжульки по VBA - книги по программированию с использованием VBA
     
    Конкретные вопросы:
    Форма-заставка
    Как запустить макрос при изменении положения курсора или значения ячейки
  • Пример 1
  • Пример 2
  • Пример 3 (проверка области)
  • Пример 4
  • Пример 5
    Зацикливание в функции Change или SelectionChange
     
    Ранжирование без пробелов (макрос включает функции сортировки массива и удаления дубликатов, работает и в Excel 2007)
  • под Office 97
     
    Добавление в главное меню своего пункта, ассоциированного с макросом
    Создание ярлыка на рабочем столе
    Снятие защиты листа при забытом пароле
    Смена раскладки клавиатуры
    Скролл формы колесом прокрутки мыши
    Оптимизация кода по быстродействию использованием массивов

  • Всего записей: 556 | Зарегистр. 31-07-2002 | Отправлено: 21:40 14-10-2004 | Исправлено: lucky_Luk, 20:44 13-04-2007
    Smog



    Жираф-Сибиряк
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Private Sub Workbook_Open()
    userform1.show
    End Sub
     
     
    где userform1 - это твоя форма-заставка...

    ----------
    Клиент форума Ru-board (Rb_client)-с предварительной поддержкой ру-борда!
    Требуются бета-тестеры!
    Обновление v0.0.3.6 (21.04.08)!

    Всего записей: 5392 | Зарегистр. 20-06-2003 | Отправлено: 21:46 14-10-2004
    RUSmafia



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    где userform1 - это твоя форма-заставка...

    да нет.. надо что бы .gif или .jpeg заставка выскакивала..а потом сама через пару секунд проподала.

    Всего записей: 556 | Зарегистр. 31-07-2002 | Отправлено: 22:02 14-10-2004
    Troitsky



    Водник Водкин
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Так и размести эту картинку на форме, а форму вызывай так как тебе сказано.
    Через пару секунд ее выгружай и грузи дальше то, что нужно.
    Можешь свойство формы BorderStyle в None поставить.
     
     
    Добавлено
    Хм... глянул щас. Оказывается в VBA установка границ в None, в отличие от VB, ни к чему не приводит.
     
    Добавлено
    И такие безграничные формы даже импортировать не возможно. Хм...

    Всего записей: 794 | Зарегистр. 13-12-2003 | Отправлено: 22:28 14-10-2004
    RUSmafia



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Troitsky

    Цитата:
    Хм... глянул щас. Оказывается в VBA установка границ в None, в отличие от VB, ни к чему не приводит.

    хорошо,пусть будет простой userform с gif , и границы т.е само окно показывает. это всё так для демонстрационных целей..чтобы как-то в школе от других отличится
    как сделать чтобы этот userform сам же через 5 сек закрылся!?  
     
    Добавлено
    нашёл что искал, сейчас проверим на деле  
     
    http://www.ozgrid.com/Excel/excel-splash-screen.htm

    Всего записей: 556 | Зарегистр. 31-07-2002 | Отправлено: 22:47 14-10-2004
    Troitsky



    Водник Водкин
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Я вобще лучше в VB , чем в VBA разбираюсь. Щас вот обнаружил, что и таймера то там нет (а может есть, но я его просто не нашел ).
    Так что за не имением лучшего можешь использовать такую конструкцию:

    Код:
          UserForm1.Enabled = False
          Start = Timer
          Do While Timer < Start + 5
             DoEvents
          Loop
          Unload UserForm1
     

     
    А может и порациональнее что придумаешь.
     
     
    Добавлено
    Кажется, предложенный там вариант, даже, на много лучше.

    Всего записей: 794 | Зарегистр. 13-12-2003 | Отправлено: 23:26 14-10-2004
    Smog



    Жираф-Сибиряк
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Troitsky

    Цитата:
    Кажется, предложенный там вариант, даже, на много лучше.

    ага, хитро
     
     

    Цитата:
    Application.OnTime Now + TimeValue("00:00:05"), "KillForm"



    ----------
    Клиент форума Ru-board (Rb_client)-с предварительной поддержкой ру-борда!
    Требуются бета-тестеры!
    Обновление v0.0.3.6 (21.04.08)!

    Всего записей: 5392 | Зарегистр. 20-06-2003 | Отправлено: 07:15 15-10-2004
    RUSmafia



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    теперь следующий вопрос, как запустить после этого второй UserForm  , например UserForm2?
    тоесть пять секунд показывает UserForm1, потом UserForm1 проподает и появляется  UserForm2, с которым уже человек работает дальше.

    Всего записей: 556 | Зарегистр. 31-07-2002 | Отправлено: 21:20 15-10-2004
    Troitsky



    Водник Водкин
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Ну, если ты выбрал тот вариант, где "KillForm", тогда сделай так:

    Код:
    Sub KillForm()
      Unload UserForm1
      UserForm2.Show
    End Sub

    Всего записей: 794 | Зарегистр. 13-12-2003 | Отправлено: 22:24 15-10-2004 | Исправлено: Troitsky, 22:25 15-10-2004
    RUSmafia



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Sub KillForm()  
      Unload UserForm1  
      UserForm2.Show  
    End Sub

    было бы всё так просто...не хочет так работать..

    Всего записей: 556 | Зарегистр. 31-07-2002 | Отправлено: 23:38 15-10-2004
    Troitsky



    Водник Водкин
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Что-то говорит? На что-то ругается? Может подсвечивает что?
     
    Добавлено
    Вобще, в чем нежелание работать заключается???
    Должно вроде.

    Всего записей: 794 | Зарегистр. 13-12-2003 | Отправлено: 00:35 16-10-2004
    dneprcomp



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А если так
     
    Sub KillForm()  
        Load UserForm2
        UserForm2.Show
        Unload UserForm1
    End Sub

    Всего записей: 3915 | Зарегистр. 31-03-2002 | Отправлено: 00:40 16-10-2004
    RUSmafia



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    на дом. компе..допрограммировался..что файл..каждый раз при закрытии хочет сохраниться..а потом жалуется что не хватает памяти..  
    userforms сразу оба открывались...
    на другом компе Win2000Prof/Excel 2000 попробывал, всё чудно работает

    Всего записей: 556 | Зарегистр. 31-07-2002 | Отправлено: 14:11 16-10-2004
    Smog



    Жираф-Сибиряк
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    как отследить изменение значения ячейки?

    ----------
    Клиент форума Ru-board (Rb_client)-с предварительной поддержкой ру-борда!
    Требуются бета-тестеры!
    Обновление v0.0.3.6 (21.04.08)!

    Всего записей: 5392 | Зарегистр. 20-06-2003 | Отправлено: 18:26 19-10-2004
    merlkerry

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Smog

    Цитата:
    как отследить изменение значения ячейки?

     
    ты не про эт случаем ???

    Код:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    End Sub


    ----------
    Вокруг одни враги.
    Я испытываю естественный скептицизм по поводу чистоты человеческих намерений.

    Всего записей: 1521 | Зарегистр. 16-09-2002 | Отправлено: 11:32 20-10-2004
    Smog



    Жираф-Сибиряк
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    merlkerry

    Цитата:
    ты не про эт случаем ???

    не не про это...почитал разобрался

    Цитата:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)  
     
    End Sub

    это смена выделенной ячейки , а я про это:

    Цитата:
     
    Private Sub Worksheet_Change(ByVal Target As Range)
         
    End Sub

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


    ----------
    Клиент форума Ru-board (Rb_client)-с предварительной поддержкой ру-борда!
    Требуются бета-тестеры!
    Обновление v0.0.3.6 (21.04.08)!

    Всего записей: 5392 | Зарегистр. 20-06-2003 | Отправлено: 15:04 20-10-2004
    daru

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Хочу поразбирать строки против регулярных выражений (RegEx).
     
    Покажите хоть куда здесь копать, а то от VBA от PHP как-то уж слишком отличается...

    Всего записей: 12 | Зарегистр. 22-09-2004 | Отправлено: 16:54 28-10-2004
    RUSmafia



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    srochno nushno editor dla struktogramm w vba(something like visio). pomogite please.  
     
     
    Добавлено
    wopros snimaetsa.. programmka nasiwaetsa StruktEd

    Всего записей: 556 | Зарегистр. 31-07-2002 | Отправлено: 11:08 05-11-2004 | Исправлено: RUSmafia, 11:23 05-11-2004
    yuraskas



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Народ, помогите, на форме находиться комбо и кнопка. Переменная (mmm - например), которую я задал в Private Sub для комбо, не видна в Private Sub для для кнопки. Очивидно гдето задается глобальная переменная. Подскажите плиз - где и как?

    Всего записей: 512 | Зарегистр. 06-06-2003 | Отправлено: 15:50 10-11-2004
    Smog



    Жираф-Сибиряк
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    yuraskas

    Цитата:
    Подскажите плиз - где и как?

    в модуле любом
    Public mmm [as integer/string etc.]

    ----------
    Клиент форума Ru-board (Rb_client)-с предварительной поддержкой ру-борда!
    Требуются бета-тестеры!
    Обновление v0.0.3.6 (21.04.08)!

    Всего записей: 5392 | Зарегистр. 20-06-2003 | Отправлено: 17:43 10-11-2004
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Excel VBA
    ShIvADeSt (23-04-2007 01:59): http://forum.ru-board.com/topic.cgi?forum=33&topic=8273


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2018

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru