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

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите пожалуйста, возможно ли каким-либо образом сделать сетку в элементе управления listbox? Если нет, то какой существует элемент управления, который бы представлял данные в виде таблицы?

    Всего записей: 14 | Зарегистр. 20-10-2008 | Отправлено: 09:04 31-07-2009
    visual73



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    5tas
    MSFlexGrid, DataGrid (из VB), есть и другие

    Всего записей: 962 | Зарегистр. 26-12-2005 | Отправлено: 09:51 31-07-2009 | Исправлено: visual73, 09:54 31-07-2009
    TGR3

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    добрый день вот такой вопрос есть  таблица с большим количеством цифр
    клонка 1    колонка 2    колонка 3    колонка 4    колонка 5
    8512    9030    853    3524    855799
    9829    830    901    71    85799
    95829    9050    968    511    851708
    90829    90830    968    9830    1708
    90846    99830    968    71    81708
     
     
    так вот надо наити одинакоые цифры которые присутвують в каждой клонке. как это сделать не могу  додумать.. может дадите направления или даже макрос какой нибудь как ее решить.
    http://img228.imageshack.us/img228/5695/exel.jpg
    заранее спасибо.. пока пойду думать как это сделать самому  
     

    Всего записей: 165 | Зарегистр. 16-10-2008 | Отправлено: 10:21 31-07-2009
    SAS888

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

    Цитата:
    надо наити одинакоые цифры которые присутвують в каждой клонке

    Ну, нашли... И куда их?

    Всего записей: 398 | Зарегистр. 31-10-2007 | Отправлено: 12:04 31-07-2009
    TGR3

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    списоком можно без разницы просто нужны эти данные.. вот нашел в инете пока искал  
    =ЕСЛИ($B10="";"";СЧЁТЕСЛИ($B$10:$B10;$B10)=1)
    он будет показывать были ли повторяющие цифры или нет... тока там не разными столбами надо а одним столбиком... так что вот так как то...
    может что попроще есть.

    Всего записей: 165 | Зарегистр. 16-10-2008 | Отправлено: 12:39 31-07-2009
    Kirov23

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

    Всего записей: 7 | Зарегистр. 28-10-2008 | Отправлено: 19:19 31-07-2009
    SERGE_BLIZNUK

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

    Цитата:
    чтоб при запуске файла, допустим, temp.xls автоматически выполнялся макрос

    откройте temp.xls
    перейдите в  редактор VBA (Alt-F11)
    двойной щелчок по ЭтаКнига в составе вашего temp.xls (это слева, в дереве проектов)
    вставляете код:

    Код:
     
    Private Sub Workbook_Open()
      MsgBox "Запустился макрос!"
    End Sub
     

     
    для закрытия Excel достаточно в макросе выполнить строчку:

    Код:
    Application.Quit

     
     


     
    TGR3

    Цитата:
    показывать были ли повторяющие цифры или нет

    А Вы не путаете цифры и числа ?

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 21:48 31-07-2009
    TGR3

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

    Цитата:
    А Вы не путаете цифры и числа ?

    как я могу их путать ? мне надо наити одинаковые цифры в каждой из колонок что тут сложно понять.. два ответа на мои вопрос и там переспрашивание просто .

    Всего записей: 165 | Зарегистр. 16-10-2008 | Отправлено: 10:01 01-08-2009
    SERGE_BLIZNUK

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

    Цитата:
    как я могу их путать ? мне надо наити одинаковые цифры в каждой из колонок что тут сложно понять..  

    афигеть.. а я уверен, что путаете..
    определение, что такое цифра из википедии
     
    вот, в вашем примере (берём первую строку):
    8512    9030    853    3524    855799  
    в первой числе и третьем одинаковая ЦИФРА 5
    в втором числе и третьем одинаковая ЦИФРА 3
    в третьем числе и четвёртом числе одинаковые ЦИФРЫ 5 и 3
    в четвёртом и пятом числе одинаковая ЦИФРЫ 5  
     
    Вы такой ответ хотите получить?  
    А в каком столбце Вам такое нужно увидеть?!

     
    лучше бы вы приложили табличку с двуми листами. на первом листе исходные данные.
    на втором - ЧТО ИМЕННО ВЫ ХОТИТЕ ПОЛУЧИТЬ...
     
    удачи.
     
     
     
     
    Добавлено:
     
    или, неужели действительно не путаете?! o_O  
    тогда для вашего же примера:

    Код:
     
    колонка1 колонка2 колонка3  колонка4  колонка5  
    8512       9030       853      3524    855799  
    9829        830       901        71     85799  
    95829      9050       968       511    851708  
    90829     90830       968      9830      1708  
    90846     99830       968        71     81708  
     

     
    ответ:
    строка 1 - нет совпадающих цифр
    строка 2 - нет совпадающих цифр
    строка 3 - нет совпадающих цифр
    строка 4 - совпала цифра 8
    строка 5 - нет совпадающих цифр
     
    ТАК?
     
    p.s. просто не хочется писать код, если предположение о том, что Вам нужно, сделано ошибочно...

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 17:12 01-08-2009
    TGR3

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    я прошу прощения... с утра что то не понял вас... и пост свои отредоктатировал , но почему то не внеслись изменния... так вот да мне надо наити числа, а не цифры ...

    Всего записей: 165 | Зарегистр. 16-10-2008 | Отправлено: 17:39 01-08-2009
    SERGE_BLIZNUK

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    TGR3 - уже лучше.
    ну ещё раз.... Вам нужно привести пример и результат, что должно получится.
    в приведённом Вами примере нет НИ ОДНОГО ОДИНАКОВОГО числа, которое присутствует во всех колонках...
     

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 17:47 01-08-2009
    visual73



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SERGE_BLIZNUK
    как трудно с объяснениями однако так глядишь через пару страниц поймем чего же требуется )

    Всего записей: 962 | Зарегистр. 26-12-2005 | Отправлено: 17:53 01-08-2009 | Исправлено: visual73, 17:54 01-08-2009
    SERGE_BLIZNUK

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    visual73 точно!
    если честно, я не стал писать об этом, но я уже начал уставать пытаться выяснить у автора вопроса, что же он хочет получить в конце то концов... прям партизан какой-то...
    и я ещё не удивлюсь, если эта задача решается формулами, без всякого VBA...

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 18:41 01-08-2009
    5tas

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

    Цитата:
    MSFlexGrid, DataGrid (из VB), есть и другие

    А Вы пробовали использовать MSFlexGrid в Excel? Дело в том, что при использовании этого элемента управления размер книги Excel, в уоторой он находится, увеличивается при каждом запуске формы. Размер моего файло дошёл аж до 341 МегаБайта! Кто-нибудь знает в чём причина?

    Всего записей: 14 | Зарегистр. 20-10-2008 | Отправлено: 07:58 02-08-2009
    visual73



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    5tas
    Я использовал этот элемент (flexgrid) в Excel (XP,2003), и что-то не помню такого явления %)

    Всего записей: 962 | Зарегистр. 26-12-2005 | Отправлено: 08:27 02-08-2009 | Исправлено: visual73, 08:28 02-08-2009
    5tas

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    visual73
    Нашёл как это можно обойти:Ссылка

    Всего записей: 14 | Зарегистр. 20-10-2008 | Отправлено: 08:44 02-08-2009
    TGR3

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SERGE_BLIZNUK
    хорошо попытка номер 3 или 4 или вторая объяснить... есть числа в столбиках, по вертикали количество чисел везде разное ... надо наити число которое чаще минимум 6 раз находиться в каждой строке, максимум присутствует во всех строках.
    http://img30.imageshack.us/img30/1116/333igp.png
    так вот там все видно таблица маленкая моя же таблица большая там 40 столбов или больше и строк в некоторых столбах достигает 1000 , так вот тут по картинке правильные числа (а не цифры ) это 2 (5 строка, просто число два) которая встречаеться везде и 32 которая попадает под 6 совпадение в одной строке.  
    теперь понятно выразился или мне лучше ап стенку убиться?

    Всего записей: 165 | Зарегистр. 16-10-2008 | Отправлено: 23:17 02-08-2009
    SERGE_BLIZNUK

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    TGR3
    я Вам честно скажу, понятие объяснять и растолковывать явно не Ваша сильная сторона!
    вот макрос, который решает Вашу задачу:
    Подробнее...
    а вот здесь пример использования: CountRepeats.rar
     

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 11:05 03-08-2009
    Kirov23

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SERGE_BLIZNUK
     
    Благодарю, работает как надо.

    Всего записей: 7 | Зарегистр. 28-10-2008 | Отправлено: 14:21 03-08-2009
    filmax



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет!
     
    Помогите освоить многомерные массивы с сортировкой и выборкой данных из них.
    Чтобы было понятно начну с самого начала. Собственно задача:
     
    Есть лист книги "Оформленные ВСЕГО" содержащий много столбцов и каждый день добавляющиеся строки.  
    Нужно выбрать из этого листа данные 4-х столбцов в массив и отсортировать по фамилиии и дате:
     
    F - фамилия  H - номер  G - дата  M - стоимость
     
    Сбросить результат в соседний лист помесячно
     
    http://rapidshare.com/files/263234237/data.rar.html или http://rapidshare.de/files/48022094/data.rar.html
     
    Какой массив выбрать динамический или фиксированный? Один 4-х мерный или 4 одномерных?

    ----------
    "Лилия гнилая пахнет хуже, чем сорная трава в навозной луже"

    Всего записей: 220 | Зарегистр. 12-10-2002 | Отправлено: 17:21 03-08-2009 | Исправлено: filmax, 17:23 03-08-2009
       

    Страницы: 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