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

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Можно и попроще. Хоть как-нибудь. :)

    Всего записей: 12 | Зарегистр. 02-03-2007 | Отправлено: 05:33 19-09-2007
    nick7inc



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tec4
    Что конкретно нужно сделать и почему в отдельном файле? Кстати, для новичка, IMHO, лучше изучать макросы в той книге, к которой они применяются. Если надо обрабатывать несколько книг, то можно код сделать как в XLS-файле, так и в виде AddIn (что почти XLS-файл, только грузится автоматом при запуске программы и не показывает свои листы). Я программировал свои кнопки в панели инструмантов Excell, делал те функции, которые сильно облегчают мне теперь работу.
     
    Добавлено:
    Olive77

    Цитата:
    Handle находится, но SendMessage lhwnd_btn, BM_CLICK, 0, 0 в этом случае не срабатывает

    1. Я где-то слышал, что надо посылать сообщение дважды, возможно при помощи сочетания разных функций SendMessage/PostMessage.
    Выписка из файла-справки InqSoft Sign of Misery далее.
     
    2. Кроме поиска хендела окна также надо найти хендл кнопки, которой потом и посылается сообщение "нажать". Вы так и делаете или окну посылаете сообщение?

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    nick7inc
     
    Программа  автоматически заполняет listbox значениями из заданного  столбца первой рабочей книги, по нажатии кнопки выбранное в listbox значение ищется в заданном столбце второй рабочей книги (книга открывается автоматически при нажатии той же кнопки); т.к. заданное значение может встречаться в столбце несколько раз, создан автофильтр. В принципе, задача выполнена.
    Дело в том, что рабочая форма вызывается при нажатии заданного сочетания клавиш (при выполнении макроса) в первой рабочей книге, а это неудобно, т.к. в первой рабочей книге постоянно меняются (добавляются/удаляются) данные, т.е. база меняется. Вторая книга обновляется каждый месяц.  
    Поэтому хотелось бы создать независимый модуль.

    Всего записей: 12 | Зарегистр. 02-03-2007 | Отправлено: 11:54 19-09-2007
    Olive77

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Troitsky
    Здорово!
    SetActiveWindow в комбинации с SetForegroundWindow помогло.
     
    Спасибо огромное.

    Всего записей: 1271 | Зарегистр. 26-12-2002 | Отправлено: 13:03 19-09-2007
    ol7ca

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

    Цитата:
    Цитата:Как правильно определить положение ячейки с которой начинается действие скрипта?  
     
    Что значит в правильном месте? У тебя и так скрипт перед копированием и вставкой переходит в заданные ячейки по Range("xxyy").Select, начиная с ячейки J14

     
     
    так вот он правильно работает только когда курсор стоит на J14.  
    то же самое происходит на других листах. там я так же определил положение начала копирования-вставки:
    Sheets("name").Select  
        Range("xxyy").Select  
     
     мне приходится прежде ставить курсор на правильные места а затем запускать скрипт
     
     
    Добавлено:
    В данном случае все определено верно и где бы я ни находился - запускаю скрипт и все работает.
    Что же все-таки нужно четко прописывать, чтобы скрипт начинал работать с правильной ячейки?
     
    Можно ли как-то упростить мой нижеприведенный скрипт?
     
     
    Sheets("NAME").Select
        Range("H6").Select
        Application.CutCopyMode = False
        ActiveCell.FormulaR1C1 = "=+[XXX.xls]X!RC"
        Range("H6").Copy
        Range( _
            "H6,T6,AE6,AQ6,D10:D37,F10:F37,O10:O37,R10:R37,AA10:AA37,AC10:AC37,AM10:AM37,AO10:AO37,AM41:AM62,AO41:AO62,AM66:AM69,AO66:AO69,AM82,AO82,AM84:AM87,AO84:AO87,AM90:AM92,AO90:AO92,AM100:AM109,AO100:AO109,AM112,AO112,AQ114:AQ115,AE114:AE115" _
            ).Select
        Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        Union(Range( _
            "R62,AA41:AA62,AC41:AC62,D66:D69,F66:F69,D82,F82,D84:D87,F84:F87,D90:D92,F90:F92,O66:O69,O82,O84:O87,O90:O92,R66:R69,R82,R84:R87,R90:R92,AA66:AA69,AC66:AC69,AC82,AA82,AA84:AA87,AC84:AC87,AA90:AA92,AC90:AC92,D100:D109,F100:F109,O100:O109,R100:R108,R109" _
            ), Range( _
            "AA100:AA109,AC100:AC109,AA112,AC112,R112,O112,H115,H116,F112,D112,H6,T6,AE6,AQ6,D10:D37,F10:F37,O10:O37,R10:R37,AA10:AA37,AC10:AC37,AM10:AM37,AO10:AO37,AM41:AM62,AO41:AO62,AM66:AM69,AO66:AO69,AM82,AO82,AM84:AM87,AO84:AO87,AM90:AM92,AO90:AO92" _
            ), Range( _
            "AM100:AM109,AO100:AO109,AM112,AO112,AQ114:AQ115,AE114:AE115,D41:D62,F41:F62,O41:O62,R41:R61" _
            )).Select
        Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        Range( _
            "J10:J37,V10:V37,AG10:AG37,AS10:AS37,J41:J62,V41:V62,AG41:AG62,AS41:AS62,J100:J109,V100:V109,AG100:AG109,AS100:AS109,AS112,AG112,V112,J112" _
            ).Select
        Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
     
    End Sub

    Всего записей: 125 | Зарегистр. 01-02-2007 | Отправлено: 17:17 19-09-2007
    32sasha



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    1. Как перехватить команду с помощью VBA (к примеру, команду в Excel “Параметры”)?
    2. И как определить, что нажато ОК или Отмена?

    Всего записей: 67 | Зарегистр. 05-01-2006 | Отправлено: 18:22 19-09-2007
    Troitsky



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

    Цитата:
    SetActiveWindow в комбинации с SetForegroundWindow помогло

    Можно и без SetActiveWindow обойтись попробовать. У меня, например, такой код работает:
    Код:
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
    Private Const WM_SETFOCUS = &H7
    Private Const BM_CLICK = &HF5
     
    Sub BtnClick()
      Dim lhwnd As Long
      Dim sClassName As String
      Dim sCaption As String
       
      sClassName = "#32770" ' класс окна - диалог
      sCaption = "Project1" ' заголовок окна
      ' Находим нужное окно
      lhwnd = FindWindowEx(0, 0, sClassName, sCaption)
      ' делаем окно активным (выводим на передний план)
      SetForegroundWindow lhwnd
       
      sClassName = "Button" ' класс кнопки
      sCaption = "ОК" ' заголовок кнопки
      ' Находим нужную кнопку в найденном окне
      lhwnd = FindWindowEx(lhwnd, 0, sClassName, sCaption)
      ' Посылаем кнопке событие WM_SETFOCUS
      SendMessage lhwnd, WM_SETFOCUS, 0, 0
      ' Посылаем кнопке событие BM_CLICK
      SendMessage lhwnd, BM_CLICK, 0, 0
    End Sub



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

    Всего записей: 795 | Зарегистр. 13-12-2003 | Отправлено: 19:46 19-09-2007 | Исправлено: Troitsky, 19:47 19-09-2007
    Olive77

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

    Цитата:
    Можно и без SetActiveWindow обойтись попробовать. У меня, например, такой код работает

    ОК, завтра попробую.
     
    Добавлено
    Угу, все чики-чики.
    Мерси.

    Всего записей: 1271 | Зарегистр. 26-12-2002 | Отправлено: 20:40 19-09-2007 | Исправлено: Olive77, 12:00 20-09-2007
    ol7ca

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

    Цитата:
    Скопировать во множественный диапазон можно так  

     
    Как можно cкопировать множественный диапазон в него же (я хочу скопировать формулы и вставить значения)?

    Всего записей: 125 | Зарегистр. 01-02-2007 | Отправлено: 22:10 19-09-2007
    AndVGri

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ol7ca
    Так кто мешает?
    pUnion.Copy
    pUnion.PasteSpecial ...
     
    И общая рекомендация совсем не обязательно выделять курсором ячейку для работы
    Range("C1") или Cells(1, 3), например, вполне достаточно для внесения данных в ячейки (возможно с указанием рабочего листа Worksheets("Name").Range("C1"). Единственное требование  для вставки требуется, чтобы лист на котором выполняется вставка был активным

    Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 05:40 20-09-2007
    nick7inc



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

    Цитата:
    Дело в том, что рабочая форма вызывается при нажатии заданного сочетания клавиш (при выполнении макроса) в первой рабочей книге, а это неудобно, т.к. в первой рабочей книге постоянно меняются (добавляются/удаляются) данные, т.е. база меняется.

    В общем-то программа и должна загружать из первой рабочей книги значения в listbox, если данные меняются, здесь до меня немного не доходит смысл, ну да ладно.  
     
    Что качается отдельного модуля, то можно сделать, на мой взгляд, двумя способами.
     
    1) Сделать 3й XLS-файл только с кодом и формами; он будет оперировать с обеими книгами. Например, у меня есть файл-шаблон, где я выбираю книгу и лист, с которыми работаю:

     
    2) Можно сделать это аналогично п.1, только в виде AddIn'а. Код работы с данными будет тот же, диалог можно вызывать кнопкой из панели инструментов, грузить файл не надо, он будет сам стартовать при запуске Excell.
     
    Добавлено:
    AndVGri & ol7ca
    Можно сделать через  

    Код:
     
    Dim r as range, c as range
    set r=range("A5:B10").cells 'Здесь задаётся обрабатываемый диапазон  
    for each c in r:c=c.value:next c
     


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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    nick7inc
     
    Большое спасибо! Попробую.

    Всего записей: 12 | Зарегистр. 02-03-2007 | Отправлено: 12:30 21-09-2007
    ferias



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите пожалуйста. У меня есть Книга з двумя листами - "MENU" и "Eliminar". "MENU" содержит в столбце A код продукта (из цифр и букв) а в столбцах B, C, D....Z, данные продукта. А в "Eliminar"  в столбец A записываю код продукта, который надо удалить из "MENU" вместе с данными( тоесть строки в которых Worksheets("MENU").Range("A:A")) соответствует данным из сриска Worksheets("Eliminar").Range("A:A"). Пытаюсь:
       a) c имеющихся данных (Worksheets("Eliminar").Range("A:A")) содать массив
       b) если (Worksheets("MENU").Range("A:A")) содержит элементы массива (точнее идентичны) , то содержимое ячейки заменить на "ZZZ"
       c) позже сироки с содержимым "ZZZ" собераюсь удалить.
    Просьба:  пункт "b" у меня не получается, я думаю, понятно что я не столько разбераюсь в этом, сколько пытаюсь использовать примеры, и естественно разобратся. Искренне БЛАГОДАРЕН за любую помощь.
     
    Код:
     
    Sub ElCel_1()
        Dim SheetNames() As Variant
        Dim i As Integer
        Dim SheetCount As Integer
        Worksheets("Eliminar").Select
        Range("A1").Select
        Selection.EntireRow.Insert
        SheetCount = Application.WorksheetFunction.CountA(Range("A:A"))
        ReDim SheetNames(1 To SheetCount)
        For i = 1 To SheetCount
            SheetNames(i) = ActiveCell.Offset(1, 0)(i).Value
            MsgBox SheetNames(i)
        Next i
        Worksheets("Eliminar").Select
        Rows("1:1").Select
             ActiveSheet.Rows("1:1").Delete
        Call BubbleSort(SheetNames)
    End Sub
    ________________________________
    Private Sub BubbleSort(List() As Variant)
     
        Dim i As Variant
        Dim SheetCount As Variant
    '
        Worksheets("Eliminar").Select
        SheetCount = Application.WorksheetFunction.CountA(Range("A:A"))
        Sheets("MENU").Select
    '
        For i = 1 To SheetCount
            For Each Cell In Range("A:A")
                    If Cell.Value Like List(i) Then
                        Cell.Value = "ZZZ"
                    End If
        Nexti
    End Sub

    Всего записей: 39 | Зарегистр. 28-06-2007 | Отправлено: 00:32 22-09-2007
    robinLib

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ЯЕсть Multipage на Userform в VBA. ПОдскажите пожалуйста как установить для каждого Page цвет ярлычка и фон такой же как и для Multipage  в целом?

    Всего записей: 138 | Зарегистр. 24-07-2005 | Отправлено: 12:54 22-09-2007
    GARRYGOR

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    проблемка такая, беру из файла значение дата/время в unix формате (переменная типа Long) и ее необходимо преобразовать к удобоваримому виду, и воткнуть в ячейку. как можно красиво сделать преобразование?

    Всего записей: 5 | Зарегистр. 22-10-2005 | Отправлено: 20:25 22-09-2007
    ZORRO2005



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Друзья,
    Нужно "отрисовать" средствами VBA форму ТОРГ-12 (Товарная накладная).
    Т.е.у меня есь массив данных в экранной форме VB6 в виде сетки.
    Мне нужно выгрузить в EXCEL под форматирование в ТОРГ12.
    В зависимости от количества строк в накладной разбить на страницы
    и корректно перенести шапку.

    Всего записей: 342 | Зарегистр. 08-10-2005 | Отправлено: 20:43 22-09-2007
    nick7inc



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ZORRO2005
    Ну и в чём, собственно, проблема? Рисуй вручную пустой шаблон в Excell того, что хочешь получить. Шаблон храни в каком-нибудь файле, как только он нужен - кодом копируй его в нужную книгу и заполняй при нажатии на кнопку в форме. Так легче будет его в последствии править. Можно, конечно, его кодом рисовать, но это довольно-таки сложно и потом его поправить будет оч. проблематично.
     
    А вообще - хотелось бы увидеть что уже у вас есть, хотя бы в виде картинок.
     
    Добавлено:
    GARRYGOR
    Я поискал среди встроенных функций и не нашёл. Проще самому написать соотв. функцию. Нужно описание этого формата.
     
    Добавлено:
    robinLib
    В лоб, по-видимому, сделать это  нельзя, но есть обходной путь: на английском  
     
    Добавлено:
    Вот максимум, что мне удалось сделать по приведённому выше описанию: Ссылка
     
     
    Добавлено:
    ferias
    В каком месте кода у вас происходит поиск и замена по пунакту b) (или вы не сами знаете? )  

    Всего записей: 1138 | Зарегистр. 04-05-2007 | Отправлено: 12:38 23-09-2007 | Исправлено: nick7inc, 13:01 23-09-2007
    Gavrik



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Есть ячейка с ссылкой на другой лист "=Лист1!А1", как из VBA получить имя этого листа?

    ----------
    Жизнь на 1/10 состоит из происходящего и на 9/10 из того как мы реагируем на происходящее.
    Реагировать надо весело, иначе жизнь покажется как лестница в курятнике - короткая и в дерьме.

    Всего записей: 797 | Зарегистр. 16-10-2001 | Отправлено: 15:05 23-09-2007
    GARRYGOR

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    nick7inc
    Я поискал среди встроенных функций и не нашёл. Проще самому написать соотв. функцию. Нужно описание этого формата.  
     
    unix формат дата/время это количество секунд с 1 января 1970 (long). Ладненько, преобразуем не стандартно.

    Всего записей: 5 | Зарегистр. 22-10-2005 | Отправлено: 16:05 23-09-2007
    nick7inc



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

    Цитата:
    Есть ячейка с ссылкой на другой лист "=Лист1!А1", как из VBA получить имя этого листа?

     
    Можно при помощи стандартных операторов бейсика:
    Instr()
    Mid$()
     
    Ищем начало, конец, а потом вырезаем нужную часть строки.
    Добавлено:
    Только не надо забывать, что восклицательный знак, по которому мы ищем, может быть частью имени: ='!A'!B2 Лучше поискать по '!, а если не найдено, то конец имени листа определяем по !. Или просто находим последный !.

    Всего записей: 1138 | Зарегистр. 04-05-2007 | Отправлено: 18:54 23-09-2007 | Исправлено: nick7inc, 19:02 23-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