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

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

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

ShIvADeSt (11-01-2010 10:17): http://forum.ru-board.com/topic.cgi?forum=33&topic=10903  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

   

ShIvADeSt



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

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

 
Обратите внимание, этот топик для помощи в изучении и использовании VBA. Посему запросы типа "Напишите мне такой-то макрос, я VBA не знаю и знать не хочу" не приветствуются.
Древняя мудрость: "Накорми голодного рыбой и он погибнет, научи его ловить рыбу и ты спасешь его."(R)
 
Предыдущие ветки топика: Часть 1
 
Информация общего характера:
  • Список соответствия имен функций в английской и русской версиях Excel
  • Описание Microsoft Excel File Format (eng.)
     
    Рекомендации:
    Если у Вас есть проблема, не решаемая стандартными средствами 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.
  • Приемы, хитрости, трюки и нюансы работы в Microsoft Excel - сайт "Планета Excel", целиком посвященный Excel и всему, что с ним связано.
  • Microsoft Excel: Таблицы и VBA. Справочник. Вопросы и Ответы. Советы. Примеры.  
     
    Родственные топики:
  • Вопросы по работе с MS Excel - Excel FAQ - часть 1, часть 2, часть 3
  • Технические проблемы с MS Office 2003 или Office XP.
  • Word VBA все вопросы по Word VBA туда
  • Access все вопросы по программированию в Access туда
  • Книжульки по VBA - книги по программированию с использованием VBA
     
    Конкретные вопросы:
    Форма-заставка
    Как запустить макрос при изменении положения курсора или значения ячейки
  • Пример 1
  • Пример 2
  • Пример 3 (проверка области)
  • Пример 4
  • Пример 5
    Зацикливание в функции Change или SelectionChange
     
    Ранжирование без пробелов (макрос включает функции сортировки массива и удаления дубликатов, работает и в Excel 2007)
  • под Office 97
     
    Добавление в главное меню своего пункта, ассоциированного с макросом
    Создание ярлыка на рабочем столе
    Снятие защиты листа при забытом пароле
    Смена раскладки клавиатуры
    Скролл формы колесом прокрутки мыши
    Оптимизация кода по быстродействию использованием массивов
    Найти "чужое" окно и нажать в нем кнопку (вписать текст в текстовое поле)
    Работа с UNICODE-символами в VBA: запись, чтение из ячейки, перевод в ASС и обратно
    Как программно подключить дополнительные библиотеки (например, "Microsoft Scripting Runtime" или "Microsoft ActiveX Data Objects 2.8 Library) через References

  • Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:58 23-04-2007 | Исправлено: JekG, 22:32 10-01-2010
    SERGE_BLIZNUK

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

    Цитата:
     не нашел как прицепить файл с примером

    заходите на http://rapidshare.com или http://iFolder.ru или на http://zalil.ru
    ищете там кнопку "Обзор" (или "Browse"), нажимаете её, указываете свой файл с примером (лучше его предварительно запаковать в архив rar),  потом кнопочку "Upload" (или "Host it" или "Send"  
    ждёте, пока загрузится, потом Вам высвечивают ссылочки (ну, для рапиду это будет вида - Your Download-Link #1: http://rapidshare.com/files/999999999/TEST.rar.html  
    (возможно надо будет нажать внизу дополнительно  
    "I don't want a collector's account right now. Just give me the download-link.")
    эту ссылку - для закачки и опубликуете в данном топике... Поверьте, я рассказываю дольше, чем это делается.
     
    и ещё, иногда очень помогает скриншот (или графическая иллюстрация) - в этом случае можно таким же образом выгрузить картинку на сайт, например, http://www.imageshack.us/ - а потом в форум поместить ссылочку (для http://www.imageshack.us/ - из окошка "Hotlink for forums (1)")
    всё.

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 21:55 30-08-2007
    vasiliy74



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    nick7inc
    Да супер! работает!, Вопрос так сказать дальше, потомучто пирмеров нет  
    вот мы выбрали значение из списка, А потом что лучше организовать в качестве хранилища (временную переменную используемую между формами), с учётом того что делаю мастер который последовательно будет запрашивать данные, ну там Next  и так пока не внисут всё только после этого выполнится макрос по их разнесению в файл Excel

    Всего записей: 289 | Зарегистр. 21-02-2006 | Отправлено: 11:41 31-08-2007
    6epe3a

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


    Всего записей: 1 | Зарегистр. 31-08-2007 | Отправлено: 13:28 31-08-2007 | Исправлено: 6epe3a, 18:16 31-08-2007
    vasiliy74



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Не работает подстановка списка если вызываю форму на другом листе:

    Код:
    Private Sub UserForm_Initialize()
    UserForm1.ComboBox1.RowSource = Лист1.Range("OO1").Address()
    End Sub

    почему? Кол-во строк то же, только они пустые

    Всего записей: 289 | Зарегистр. 21-02-2006 | Отправлено: 15:04 31-08-2007
    ol7ca

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

    Цитата:
    SERGE_BLIZNUK

     
    спасибо.
     

    Цитата:
    Имеем файл А - куда должны попасть даные из файлов В и С. Важно чтобы были вставлены только значения  без формул а итоговые (последняя строка снизу и последний столбец справа) остались с формулами. В реальности таблица больше и шире раза в два чем прведеный пример. Желательнов А где-то снизу иметь строчку для самопроверки. Где будут итоговые суммы по столбцам из В и С. У меня стоит английская версия Excel. спасибо.  

     
    Вот файлы с примерами:
     
    A-http://slil.ru/24800804
    B-http://slil.ru/24800850
    C-http://slil.ru/24800869

    Всего записей: 125 | Зарегистр. 01-02-2007 | Отправлено: 17:39 31-08-2007
    nick7inc



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

    Цитата:
    Не работает подстановка списка если вызываю форму на другом листе:

    На то может быть 2 причины, причём сразу обе
     
    1. В моём примере указан явно лист, с которым идёт связь.  
    Сделай что-то вроде:

    Код:
    Dim ws as worksheet
     'Проверяем, чтобы activesheet указывал на рабочий лист, а не на диаграмму или что-то другое.
    If TypeName(ActiveSheet) <> "Worksheet" Then
      msgbox "Не тот лист выбрали!"
       stop: end ' Или свой код на случай, если пользователь откроет,  
                     ' скажем, диаграмму вместо рабочего листа
    end if
     
    set ws=activesheet

    А вместо UserForm1.ListBox1.RowSource = Лист1.Range("OO1").Address() пишем:

    Код:
    UserForm1.ListBox1.RowSource = ws.Range("OO1").Address()

    2. Нельзя присвоить одно и то же имя разным диапазонам на разных листах. Используй разные имена диапазонов и подставляй соотв. имя в код (... Range("OO1").Address() ).
    Или реализуй алгоритм по-другому.
    Добавлено:

    Цитата:
    вот мы выбрали значение из списка, А потом что лучше организовать в качестве хранилища (временную переменную используемую между формами),

    Вариантов несколько.
     
    1) Объявить глобальную переменную-массив (не очень мне это нравится)
    2) Хранить выбранные величины в скрытом листе (прямо в файле или в AddIn'е)
    3) Все параметры (список Combobox, текужее значение) остаётся после выполнения UserForm1.Hide и хранится, пока не завершится макрос по команде END, либо пользователь нажмёт крестик на самом окне формы, или как-то иначе вызовется функция Unload UserForm1, или какое-нибудь из событий самой формы, выполняющееся перед показом или после закрытия не изменит состояние Combobox.
    4) Сделать скрытый лист Excell и хранить всё в нем. Указатель на этот временный лист-книгу запихиваем в глобальную переменную в рабочей книге. После использования не забываем его удалить:

    Код:
    Dim ExcelSheet As Object
    Set ExcelSheet = CreateObject("Excel.Sheet") 'Создаём  
    ExcelSheet.Application.Visible = True 'Для отладки можем сделать его видимым
    ExcelSheet.Application.Cells(1, 1).Value = "This is column A, row 1" 'Что-нибудь туда сохнаряем
    ' [наш крутой код идёт здесь]
    Set ExcelSheet = Nothing  'Удаляем временную книгу без сохранения
    MsgBox "Done"
     
    Хотя этот способ немного сложный для новичка.
     
    Добавлено:
    Чуток поправил.
     
    Добавлено:
    Проще всего использовать вариант №3. Если не устраивает, то другие.

    Всего записей: 1138 | Зарегистр. 04-05-2007 | Отправлено: 17:57 31-08-2007 | Исправлено: nick7inc, 18:50 31-08-2007
    SERGE_BLIZNUK

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ol7ca
    два вопроса -  
    1) в таблицах B и C строго по три столбца с значениями?
    2) наименования в B и C точно всегда совпадают? Количество, написание, порядок???
     

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 22:11 31-08-2007
    august23



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кто подскажет как можно сделать чтобы макрос сам запускался во всех документах excel и на всех листах книг.

    Всего записей: 15 | Зарегистр. 31-08-2007 | Отправлено: 17:40 01-09-2007
    nick7inc



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    august23
    Конкретизируйте ваш вопрос, при каком условии: открытии, изменении данных на листе, переключение между листами, закрытие книги, до печати и т.п.
     
    Добавлено:
    Или при нажатии на кнопку надо перебрать все книги и листы?
    Главный медиум ещё в отпуске.

    Всего записей: 1138 | Зарегистр. 04-05-2007 | Отправлено: 22:34 01-09-2007
    august23



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

    Всего записей: 15 | Зарегистр. 31-08-2007 | Отправлено: 13:07 02-09-2007
    SERGE_BLIZNUK

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    august23
    на одно событие похоже не получится повесится...
    вот набор событий, который покрывает вашу задачу, только прийдётся мудрить, если вам макрос нельзя вызывать повторно...
    Private Sub Workbook_Open()
    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Private Sub Workbook_NewSheet(ByVal Sh As Object)
     
    макрос можно будет разместить в персональной книге макросов.
     
    И ещё, я не знаю, что за удобство в "рисует линии от активной ячейки до координатной сетки" - не представляю как это выглядит, но, лично я бы ОЧЕНЬ не хотел бы иметь такой макрос работающем на моём компьютере - т.к. он будет мне что-то рисовать вне зависимости от того надо оно мне или нет... не любли, когда компьютерная программа считает, что она лучше знает, что пользователю надо!!!

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



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Это не моя разработка, хотя я давно хотел сам такое слепить    
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
       a = Target.Row
       b = Target.Column
       с = Target.Address
       Cells.Borders(xlDiagonalDown).LineStyle = xlNone
       Cells.Borders(xlDiagonalUp).LineStyle = xlNone
       Cells.Borders(xlEdgeLeft).LineStyle = xlNone
       Cells.Borders(xlEdgeTop).LineStyle = xlNone
       Cells.Borders(xlEdgeBottom).LineStyle = xlNone
       Cells.Borders(xlEdgeRight).LineStyle = xlNone
       Cells.Borders(xlInsideVertical).LineStyle = xlNone
       Cells.Borders(xlInsideHorizontal).LineStyle = xlNone
       With Columns(b).Borders(xlEdgeRight)
       .LineStyle = xlContinuous
       .Weight = xlThick
       .ColorIndex = 3
       End With
       Columns(b).Borders(xlInsideHorizontal).LineStyle = xlNone
       With Rows(a).Borders(xlEdgeBottom)
       .LineStyle = xlContinuous
       .Weight = xlThick
       .ColorIndex = 3
       End With
       Rows(a).Borders(xlEdgeRight).LineStyle = xlNone
       End Sub
     
    попробуй. Я нахожу это удобным. Линии переходят вместе с активной ячейкой и стираются в предыдущих позициях. И не мне здесь рассказывать, что макрос можно приостановить.
    Спасибо за подсказку.
    Теперь разбераюсь с персональной книгой макросов
    Не удивляйтесь, если и об этом буду спрашивать.

    Всего записей: 15 | Зарегистр. 31-08-2007 | Отправлено: 18:07 02-09-2007 | Исправлено: august23, 18:08 02-09-2007
    SERGE_BLIZNUK

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    august23
    1) забудьте мой предыдущий совет насчёт событий, который нужно обрабатывать!
    Здесь нужно совершенно другое - вам нужно найти код, построенный по вирусному принципу - т.е. который записывает нужный макрос во все открываемые листы. (причём, желательно с проверкой - что там уже есть макрос на SelectionChange...)
     
    2) мне макрос АБСОЛЮТНО не понравился ;-(((( ничего особенно удобного не вижу.
     
    3) макрос попросту вреден! Неужели у вас нет документов, которые оформлены как таблицы - выделены очертаниями шапка, столбы? Так вот, это макрос все установленные вручную границы (border) ячеек стирает!!!
     
    4)
    Цитата:
    И не мне здесь рассказывать, что макрос можно приостановить
    оп-па... Почему не здесь... именно здесь! я вынужден к своему стыду признать, что я так не умею - научите, пожалуйста.

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 07:21 03-09-2007
    august23



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SERGE_BLIZNUK
    я вынужден к своему стыду признать, что я так не умею - научите, пожалуйста.  
     
    Я, наверное, неточно выразился. Приостановить макрос может и нельзя, но управлять его действиями - можно.
    Могу и ошибаться, но по моему можно сделать что-то типа флага (например использовать элемент управления "галочка"), а предыдущий код поместить в процедуру, которая будет срабатывать лишь при включении или выключении "галочки".
     
    Сам не пробовал и это все сходу. Будет интересно проверить на практике.
    Спасибо за подсказку о побочных действиях макроса, этим и займусь.
    Можно сделать запоминание предыдущих параметров ячейки и их восстановление, тогда не нужно будет включать или выключать.

    Всего записей: 15 | Зарегистр. 31-08-2007 | Отправлено: 10:02 03-09-2007 | Исправлено: august23, 20:49 03-09-2007
    nick7inc



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    august23
    Можно попробовать реализовать с циклом в каком-нибудь файле или AddIn'е:

    Код:
     
    public stop_cycle as boolean
    public is_run as boolean
     
    Sub Cycle
    if is_run then exit sub
    is_run=true
    Dim v as variant
     
     
    do until stop_cycle
    v=Selection
    Select case typename(v)
     
    '[...]
     
    end select
    DoEvents
    loop
    stop_cycle=false
    is_run=false
    end sub
     
    Sub StopC
    stop_cycle=true
    end sub
     

    Cycle и StopC запускать "Настраиваемой кнопкой" из панели инструментов
    Необходимо проверить защиту от повторного запуска Cycle- is_run .

    Всего записей: 1138 | Зарегистр. 04-05-2007 | Отправлено: 11:33 04-09-2007 | Исправлено: nick7inc, 11:34 04-09-2007
    ol7ca

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

    Цитата:
    SERGE_BLIZNUK

     

    Цитата:
    два вопроса -  
    1) в таблицах B и C строго по три столбца с значениями?  
    2) наименования в B и C точно всегда совпадают? Количество, написание, порядок???  

     
    На самом деле это упрощенный пример. Если я смогу при помощи кода заполнять эти формы, то это уже решит многое.  
    В реальности,  
    1. между столбцами с данными есть еще столбцы и было бы хорошо где-то в скрипте иметь возможность это изменять;  
    2. строк больше и они не всегда совпадают, но этого можно избежать, если дать определение строкам- что чему соответствует в файле А в новом столбце;  
    3. иногда приходится в итоговый файл А вставлять не одно  значение из В или С а сумму нескольких ячеек.
    спасибо.
     

    Всего записей: 125 | Зарегистр. 01-02-2007 | Отправлено: 19:15 04-09-2007 | Исправлено: ol7ca, 00:19 05-09-2007
    genter

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Привет, форумчане! Помогите плиз умным советом. Задача вообщем-то простая:
    несколько операторов одновременно заводят документы каждый в своем файле. Каждому документу должен быть присвоен ID (сквозная нумерация).  Для этого на сервере создан файл Excel, назовем его Num. И когда оператор заведя данные в форму нажимает ОК, программа открывает Num ,в ячейку А1 вносит следующий порядковый номер и закрывает его. Если в этот момент к файлу обращаются несколько пользователей, то происходит проверка открыт ли файл только для чтения и тем у кого для чтения сообщает "Документ не зарегистрирован. Попробуйте еще раз". И все бы ничего, но.... когда процедурой Workbooks.Open открывается файл, а он в это время занят другим пользователем, то имитируется нажатие кнопки Уведомить. Поэтому когда файл закрывается - другому пользователю приходит сообщение, что Файл стал доступным, Чтение и запись.  
    Разные варианты перепробовал, чтобы это обойти - пока не выходит. Хотелось бы, чтобы никаких подобных сообщений оператор не получал. Во-первых, чтобы не раздражало все время да и чтобы не нажал че-нить не то. Возможно ли это с Excel или придется делать в Access?

    Всего записей: 3 | Зарегистр. 05-09-2007 | Отправлено: 09:52 05-09-2007
    Olive77

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    genter
    Workbooks.Open Filename:=ThisWorkbook.Path & "/" & "test.xls", notify:=False  
    пойдет?
     
    Experts
    несколько посложнее вопрос
    пытаюсь расковырять одну надстройку (Add-in), чтобы автоматизировать некие действия.
    в этой надстройке используются .ocx файлы, которые, по-видимому, содержат диалоговые окна.
     
    Диалоговое окно - самого простого вида:
    TextBox - куда вносится адрес области
    и две кнопки OK и Cancel.
     
    Можно ли с помощью VBA нажать на "OK" или "Cancel"?
    В свойствах элемента ничего не нашел, но может не там искал.
    С .ocx-элементами никакого опыта нет
     
    Мож кто чего почитать посоветует?

    Всего записей: 1271 | Зарегистр. 26-12-2002 | Отправлено: 15:50 06-09-2007 | Исправлено: Olive77, 15:57 06-09-2007
    nick7inc



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

    Цитата:
    Диалоговое окно - самого простого вида:  
    TextBox - куда вносится адрес области  
    и две кнопки OK и Cancel.

     
    Странно, что это реализовано через OCX. Вполне модно сделать средствами самого VBA.
     
    Добавлено:
    Точно нет этого диалога среди UserForm's AddIn'а?
     
    Добавлено:
    Может эта форма внедрена в качестве одного из листов проекта, а листы в режиме AddIn'а не показываются...

    Всего записей: 1138 | Зарегистр. 04-05-2007 | Отправлено: 16:07 06-09-2007
    Olive77

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

    Цитата:
    Странно, что это реализовано через OCX. Вполне модно сделать средствами самого VBA.  

    Хозяин - барин.
    Скрывают чего-то.
     

    Цитата:
    Точно нет этого диалога среди UserForm's AddIn'а?

    Точно нет. Зуб даю.
     
    в проекте сделана ссылка на этот .ocx файл.
    за счет этого возможно определение переменной myList
    Public myList As CSDList
     
    далее
    Sub test()
     
        Set myList = New CSDList
         
        With myList
            Set .XLApplication = ThisWorkbook.Application
            Call .ShowListForm(Selection.Address)
        End With
         
    End Sub
     
    Командой Call .ShowListForm(Selection.Address) эта форма и вызывается.

    Всего записей: 1271 | Зарегистр. 26-12-2002 | Отправлено: 19:30 06-09-2007 | Исправлено: Olive77, 19:33 06-09-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 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Excel VBA (часть 2)
    ShIvADeSt (11-01-2010 10:17): http://forum.ru-board.com/topic.cgi?forum=33&topic=10903


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru