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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Troitsky



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

    Цитата:
    есть ли соединение с интернетом (в общем случае)?

    http://www.vbnet.ru/subscribe/showsubscribe.asp?id=56#cunning1


    ----------
    Мы в хорошем настроении гуляем по лесам.
    Кто обидеть нас захочет – сам получит по усам.
    Сам полу- получит по усам. Сам полу- получит по усам!

    Всего записей: 795 | Зарегистр. 13-12-2003 | Отправлено: 16:29 26-02-2007
    jONES1979



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

    Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 17:29 26-02-2007
    FiziK07



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нужна помощь.
     
    Как объединить все листы книги в один?  Формат листов одинаковый
     
    Тоесть, чтобы создался новый лист с даными всех листов.
     
    Помогите плизз !!!

    Всего записей: 4 | Зарегистр. 27-02-2007 | Отправлено: 13:32 27-02-2007
    SERGE_BLIZNUK

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    FiziK07
    Цитата:
    Тоесть, чтобы создался новый лист с даными всех листов
    ну, что значит "с данными всех листов"?
    пусть на первом листе:
    A           B     C
    Иванов   12   01.12.2006
     
    на втором  
    Петров   32 01.02.2007
     
    что должно быть на итоговом??

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 15:35 27-02-2007
    FiziK07



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    jONES1979
     
    На итоговом должно быть  
    A          B       C
    Иванов 12 01.12.2006
    Петров 32 01.02.2007
     
     
     

    Всего записей: 4 | Зарегистр. 27-02-2007 | Отправлено: 15:39 27-02-2007
    pasha123321



    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Помогите! Есть на листе коллекция рисунков. Нужно: вставлять в определенную ячейку другого (или этого же) листа один из рисунков на выбор (возможно, из раскрывающегося списка). Коллекция статическая.

    Всего записей: 3 | Зарегистр. 19-10-2005 | Отправлено: 21:58 27-02-2007
    Olive77

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

    Цитата:
     

    Цитата:
    Цитата:есть ли соединение с интернетом (в общем случае)?  

     
    http://www.vbnet.ru/subscribe/showsubscribe.asp?id=56#cunning1  

     
    к сожалению, не работает.
    Функция IsConnected выдает, что нет соединения, что неверно.
    (У меня интернет корпоративный, через брэндмауер (firewall)).

    Всего записей: 1271 | Зарегистр. 26-12-2002 | Отправлено: 12:53 28-02-2007 | Исправлено: Olive77, 13:40 28-02-2007
    pavelkoryakin

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

    Цитата:
    Снятие блокировки со страницы, если пароль забыл  

    А как снять защиту VBA проекта? Я не могу его развернуть в редакторе, требует пароль...

    Всего записей: 1 | Зарегистр. 28-02-2007 | Отправлено: 16:36 28-02-2007
    The okk



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    pavelkoryakin
    Снять защиту можно только если знаешь пароль. Если забыл пароль, придется взламывать - это тебе не с листа защиту снимать

    Всего записей: 327 | Зарегистр. 16-11-2006 | Отправлено: 10:39 01-03-2007
    Stasssm

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, как мне автоматизировать сравнение двух списков, т.е.
    есть список оборудования с инвентарными номерами:
       
          А                      В                    
    инв.номер      наименование
     
    через месяц бухгалтерия выдала новый список и у меня есть подозрения, что несколько позиций были либо удалены (списано оборудование), либо добавлены. Уверен, что переименовывание не делали, т.е. ни для одного инв. номера не меняли наименование оборудования.
    Как можно заставить Excel помочь мне определить какие позиции были удалены или добавлены, чтобы мне не искать это вручную, т.к. список очень большой.
    Искать (сравнивать) можно только по инв. номеру.
     
     

    Всего записей: 109 | Зарегистр. 12-05-2006 | Отправлено: 10:40 01-03-2007
    The okk



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Stasssm
    Это делается с помощью формул ВПР. VBA тут не нужен. Делаешь столбец с функцией вида:
    =ЕСЛИ(ВПР(параметры_старого_списка)=ВПР(параметры_нового_списка);ИСТИНА;ЛОЖЬ)
    ВПР будет производиться по столбцам с инвентарным номером, сравниваться будут соответствующие значения в столбцах с наименованием.
    В итоге, где будет ЛОЖЬ - там несовпадение. Если не понятно, пиши в тему Excel FAQ (ссылка в шапке).

    Всего записей: 327 | Зарегистр. 16-11-2006 | Отправлено: 11:15 01-03-2007
    jONES1979



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    pavelkoryakin
    есть программы от elcomsoft
     
    http://www.elcomsoft.com/prs.html
    Advanced Office Password Recovery
    Advanced VBA Password Recovery

    Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 13:15 01-03-2007
    Stasssm

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Мне иногда приходиться работать со списками. Данные бывают разные - иногда это фамилии, иногда цифры.
    Очень часто необходимо прошерстить какой-нибудь список и по какому нибудь критерию что-нибудь изменить. Вот например есть список:
     
               А                В              С
           12345          аааа          ббббб
                              вввв          гггггг
           23456          ссссс          дддд  
     
    и т.д.
    Подскажите как можно, например используя FOR или FOR EACH... пробежаться по всей базе и удалить те строки, в которых пустые ячейки столбца А, т.е. удалить строку с данными "вввв" и "ггггг".  
    У меня как у собаки которая понимает, а сказать не может. Я читаю те модули которые вы пишете и могу немного их править, но самому построить от начала до конца весь макрос не получается, хотя ни один раз лазил читать Help по этим функциям.

    Всего записей: 109 | Зарегистр. 12-05-2006 | Отправлено: 15:10 01-03-2007
    AndVGri

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Stasssm
     
    Попробуйте нечто следующее:
     
    Public Sub DeleteRow()
        Dim LastRow As Long
        Dim iRow As Long
         
        'Пусть активная ячейка где-то в таблице
        iRow = ActiveCell.CurrentRegion.Row
        LastRow = ActiveCell.CurrentRegion.Rows.Count + iRow - 1&
         
        Do Until iRow > LastRow
            If IsEmpty(Cells(iRow, 1&).Value) Then
                'удалить пустую строку
                Cells(iRow, 1&).EntireRow.Delete
                LastRow = LastRow - 1&
            Else
                'перейти к следующей
                iRow = iRow + 1&
            End If
        Loop
    End Sub

    Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 20:10 01-03-2007
    Dim75

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    помогите заполучить
     
    ActiveX элемент MSFlexGrid  
     
    обыскал всё, не могу найти
    а без него файл отказывается работать

    Всего записей: 44 | Зарегистр. 19-08-2003 | Отправлено: 06:53 02-03-2007
    The okk



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

    Цитата:
    Подскажите как можно, например используя FOR или FOR EACH... пробежаться по всей базе и удалить те строки, в которых пустые ячейки столбца А, т.е. удалить строку с данными "вввв" и "ггггг".  

    Данные - Автофильтр - Выбираешь первый столбец. В фильтре выбираешь "Пустые". Удаляешь. Все. Зачем тут VBA?
     
    Добавлено:
    Dim75

    Цитата:
    помогите заполучить  
     
    ActiveX элемент MSFlexGrid  
     
    обыскал всё, не могу найти  

    Странно. А разве этот контрол не входит в стандартную комплектацию? У меня установлен. Поищи у себя файл "msflxgrd.ocx" в папке system32

    Всего записей: 327 | Зарегистр. 16-11-2006 | Отправлено: 06:58 02-03-2007
    SERGE_BLIZNUK

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    The okk
    Цитата:
    Странно. А разве этот контрол не входит в стандартную комплектацию? У меня установлен. Поищи у себя файл "msflxgrd.ocx" в папке system32

    похоже - не входит... У меня WinXP SP2 + Office 2002 SP3 - такого нет
     
     
    Добавлено:
    Элементы ActiveX, включенные в состав Microsoft Office XP Developer
    В данной статье перечисленны все элементы ActiveX, включенные в Microsoft Office XP Developer. Список включает имя файла элемента ActiveX, название, версию и описание управления элементов. Далее представлено краткое описание элементов ActiveX,...
     

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 08:23 02-03-2007
    The okk



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

    Цитата:
    похоже - не входит... У меня WinXP SP2 + Office 2002 SP3  

    И что, нет ни файла, ни дополнительного пункта в Additional Controls?
    У меня та же конфигурация и у меня есть - пусть старая (2.0), но не из воздуха же она появилась .

    Всего записей: 327 | Зарегистр. 16-11-2006 | Отправлено: 09:05 02-03-2007 | Исправлено: The okk, 09:09 02-03-2007
    Dim75

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

    Цитата:
    Странно. А разве этот контрол не входит в стандартную комплектацию? У меня установлен. Поищи у себя файл "msflxgrd.ocx" в папке system32

     
    я проверял до этого - нет его

    Всего записей: 44 | Зарегистр. 19-08-2003 | Отправлено: 09:08 02-03-2007
    The okk



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

    Всего записей: 327 | Зарегистр. 16-11-2006 | Отправлено: 09:11 02-03-2007 | Исправлено: The okk, 09:12 02-03-2007
       

    Страницы: 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.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru