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

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

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Vitus_Bering
    К сожалению Пёрла у меня нет. А можно ли в VBA это как-нибудь реализовать? Или просто с помощью функций Excel, я сам что-то не могу сообразить

    Всего записей: 961 | Зарегистр. 17-04-2007 | Отправлено: 12:51 18-12-2008
    Vitus_Bering



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

    Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 15:24 18-12-2008
    crotoff

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Vitus_Bering
    спасибо! то что надо
     
    оказывается в моём случае работает конструкция с "*"
     
    Cells.Replace What:="[url=http://*]", Replacement:="[url=http://my_site.com]", LookAt:=xlPart

    Всего записей: 961 | Зарегистр. 17-04-2007 | Отправлено: 16:19 18-12-2008 | Исправлено: crotoff, 19:47 18-12-2008
    ZIPANDDAIL

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите пожалуйста. Форматирую ячейки указывая  rows(i),celss(y).font.bold=true
    Делаю перенос в ячейке  rows(i),celss(y).wraptext=true.  Не могу найти команду увеличить строку в высоту в зависимости от длины содержимого, т.е. мне надо автоформат высоты

    Всего записей: 28 | Зарегистр. 18-12-2008 | Отправлено: 10:53 22-12-2008
    Vitus_Bering



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

    Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 11:24 22-12-2008
    ZIPANDDAIL

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    можно поподробнее синтаксис, пока у меня не получается правильно написать команду

    Всего записей: 28 | Зарегистр. 18-12-2008 | Отправлено: 13:25 22-12-2008
    WowGun



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ZIPANDDAIL
    для любого объекта типа Range как то:
    Range("A1"), Selection ...
     
    Selection.EntireRow.AutoFit
     

    Всего записей: 107 | Зарегистр. 16-07-2007 | Отправлено: 15:44 22-12-2008
    Vitus_Bering



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

    Цитата:
    поподробнее синтаксис

    Автоформат по высоте всех строк на листе

    Код:
     
     Sub AutoFitRows()
     Dim i As Integer
        For i = 1 To ActiveSheet.UsedRange.Rows.Count
        Rows(i).EntireRow.AutoFit
       Next i
       
     End Sub
     
     


    Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 16:33 22-12-2008 | Исправлено: Vitus_Bering, 16:36 22-12-2008
    ZIPANDDAIL

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Получилось, спасибо!
    Можно ли в пронумеровать страницы  Execl   без слова "Cтраница"  по умолчанию стоит "Страница 1".
    Это можно сделать с помощью vba или есть какие-то команды в Execl.

    Всего записей: 28 | Зарегистр. 18-12-2008 | Отправлено: 13:05 23-12-2008
    Vitus_Bering



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

    Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 15:10 23-12-2008
    AndreiFX

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем доброго времени!
    Такой вопрос: есть необходимость получать дату не локального времени, а времени, заданного часового пояса(GMT или UTC)
     
    пробую что то типа этого: Dim date2 As Date = Date.UtcNow , но выдает ошибку
     
    Подскажите пожалуйста в чем может быть дело?
    Работаю на VBA. EXcel 2007.
     
    Спасибо

    Всего записей: 1 | Зарегистр. 23-12-2008 | Отправлено: 19:14 23-12-2008
    Aleksanderac

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте.
    вообщем имеем текстовый файл с данными которые нужно перенести в эксел.
    это сделано.
    на панели инструментов создана кнопка, которая вызывает этот макрос.(макрос запихан в корневую папку)
    при нажатий на кнопку  открывается диалог выбора файла.
    мне надо сделать так, чтобы при выборе этого файла он открывался в этой же книге.
    то есть я закрываю активную книгу(activWindow.Close) и открываюв этом же окне свой макрос.
    Проблема в чем...
    1)если я закрываю окно,запускаю макрос в этом окне, то следующий когда я нажму на кнопку, получается что я закрываю свой макрос и немогу его окрыть.он открывается и тут же закрывается(((
     
    ActiveWindow.Close
    If OpenWorkbook("макрос") = True Then
    ActiveWindow.Activate
    End If
     
    2) пробовал вытащить имя книги и если имя книги "макрос" то не закрывать. теперь когда макрос откыт и снова нажать на кнопку, то он запустить опенДиалог. почти как мне надо.
     
    'If (OpenWorkbook(name) = True) And (name <> "макрос.xls") Then
    'ActiveWindow.Close
    'End If
     
    НО!!!  теперь когда вариант 2. в любой книге нажимаю кнопку вызова макроса, у меня открывается в другом окне этот макрос,а считает в этой книге. в которой я нажимал.
     
    что я хочу.
    чтобы любая книга закрывалась,сохранялась и если нету никакой книги то при нажатий на кнопку открыть мой макрос.
     
    а сейчас у меня получается
    в первом варианте: закрыл книгу, открыл макрос, посчитал и все. пока не создашь новую книгу, макрос мне свой не запустить.
    во втором варианте: если нету книг открывает в этом окне, если книга есть открывает в другом окне.
     
    извините за такое длинное письмо))) заранее спасибо. я юзер в Vba.
     вот начало кода  макроса. после открытия у меня все ок. помоги с окнами
     
    Private Function OpenWorkbook(iName$) As Boolean
    Dim iBook As Workbook
    For Each iBook In Workbooks
    If iBook.name = iName$ Then
    OpenWorkbook = True
    Exit Function
    End If
    Next
    OpenWorkbook = False
    End Function
    Public Sub Import_provodki()
    Dim TextLine As String
    Dim i As Integer
    Dim nlist As String, path_name As String
    Dim name As String
     
     
    ActiveWindow.Close
    If OpenWorkbook("макрос") = True Then
    ActiveWindow.Activate
    End If
     
    'If (OpenWorkbook(name) = True) And (name <> "макрос.xls") Then
    'ActiveWindow.Close
    'End If
     
     
    ActiveSheet.EnableAutoFilter = True
    ActiveSheet.Protect contents:=True, userInterfaceOnly:=True
     
    Range("A2:K3000").Select                
    Selection.ClearContents                  
     
    With Application.FileDialog(msoFileDialogOpen)
            .AllowMultiSelect = False
            .Show
             path_name = .SelectedItems(1)
        End With

    Всего записей: 2 | Зарегистр. 24-12-2008 | Отправлено: 15:28 24-12-2008 | Исправлено: Aleksanderac, 15:51 24-12-2008
    Caragius

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите, пожалуйста, для зачета необходимо решить такую систему методом Крамера
     
    x-y-z=-2
    2x-3y-z=-5
    5x+7y+z=0
     
    решить необходимо через Visual Basic .
     
    Знаю, что там есть строки
    типа
    Cells(...)=Cells()/....
     
    Очень прошу помощи

    Всего записей: 1 | Зарегистр. 24-12-2008 | Отправлено: 18:28 24-12-2008
    abb269

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте,
    Может кто подскажет как из макроса Екселя запустить немикрософтовскую программу.
    Заранее спасибо

    Всего записей: 3 | Зарегистр. 13-12-2008 | Отправлено: 12:33 25-12-2008
    Vitus_Bering



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    abb269
    Shell
     
     
    Добавлено:
    abb269
    Shell
     
     
    Добавлено:
    abb269
    Используй Shell.

    Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 15:30 25-12-2008
    Aleksanderac

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    усе. спасибо не нужна ваша помощь. когда сохраняешь как надстройки все работает как надо))))

    Всего записей: 2 | Зарегистр. 24-12-2008 | Отправлено: 15:52 25-12-2008
    abb269

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    2Vitus_Bering: спасибо, понял

    Всего записей: 3 | Зарегистр. 13-12-2008 | Отправлено: 16:25 25-12-2008
    TeHNoSaL

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

    Всего записей: 41 | Зарегистр. 08-10-2008 | Отправлено: 19:27 25-12-2008 | Исправлено: TeHNoSaL, 19:28 25-12-2008
    Frantishek



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Парни могите плиз разобраться с функцией ВПР.  
    Нужно сопоставить данные по источнику дата+время вида [00.00.0000  00:00:00] - нифига не получается, почему то функция ориентируется только на первую часть данных (дата) а время игнорируется как составляющая вообще, в результате оригинальность строк не выдерживается и сопоставление проводится некорректно.  
    Пробовал перевести в текстовый формат, получив некие цифири с дробной частью, так блин и здесь та же песня - вся дробная часть игнорируется. Наверняка же есть решение?

    Всего записей: 1222 | Зарегистр. 02-05-2006 | Отправлено: 22:44 25-12-2008
    V4mp



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спецы, прошу помощи.
    Нужно в эксэле с помощью vba открыть внедренный в него документ ворд, как то вбить в него данные с ячеек эксэля, а затем сохранить этот документ в любую папку. Причем сделать это нужно с помощью макросов эксэля, в документ ворда желательно никаких макросов не вставлять.
    Возможно ли это?  
    Просто даже не представляю, как из эксэля можно управлять вордом...
    Можете дать только команды, дальше сам постараюсь разобраться)

    Всего записей: 65 | Зарегистр. 04-12-2008 | Отправлено: 01:30 26-12-2008 | Исправлено: V4mp, 01:39 26-12-2008
       

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