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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Я сам додумал
    eltqnf, вот и молодец!!!
     
    А я просто напомню, было красивое решение от Robert

    Цитата:
    При большом количестве вложенных функций ЕСЛИ формула становится громоздкой, сложно понимаемой и трудно изменяемой. В этом случае лучше использовать дополнительную табличку и функцию ВПР.

    подробности смотрим в оригинальном сообщении - (с) Robert - замена сложных вложенных =ЕСЛИ( на ВПР()

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



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Господа, подскажите пожалуйста как можно решить такую проблему:
     
    У меня есть база .mdb в access, в ней таблица с двумя столбцами - "номер" и "название" (данные могут дублироваться).
    И есть .xls книга, в кторой куча столбцов среди которых также есть - "номер" и "название", но т.к. данные заносятся вручную, то названия может не быть.
     
    И собственно вопрос, как можно макросом сделать так, чтоб он выбрал все ячейки с номером и если в соседней ячейке нет названия, то сделал бы запрос к дб и подставил название в пустую ячейку справа, которое соответствует номеру из бд?
     
    Заранее благодарен!

    Всего записей: 68 | Зарегистр. 19-03-2006 | Отправлено: 17:11 18-08-2008
    Kanev75



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как можно изменить/отредактировать файл надстройки (xla) ?

    Всего записей: 657 | Зарегистр. 30-05-2003 | Отправлено: 10:14 19-08-2008
    visual73



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kanev75
    Входишь в редактор VBA (Alt-F11).
    Если меняешь код надстройки то просто жмешь на Сохранить в VBA редакторе.
    Если хочешь изменить содержание на листах: заходишь в надстройку, жмешь "ЭтаКнига", в свойствах ставишь IsAddin в False, делаешь изменения, меняешь IsAddin в True, сохраняешь.

    Всего записей: 962 | Зарегистр. 26-12-2005 | Отправлено: 10:30 19-08-2008
    ecolesnicov

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kanev75
    Также как и обычный файл ... Открыть и изменить. Если по конкретнее - то xla-файлы отличаются от обычных тем, что не показываются в интерфейсе Excel, но при этом могут содержать листы, макросы, формы и пр. Все это видно через отдельное окно Visual Basic. Таким образом:
    1) Открываете vba-файл
    2) Переходите в Окно Visual Basic (через Alt+F11 или через меню).
    3) Находите в Project Explorer (плавающее окошко обычно прикрепленное в правом верхнем углу окна Visual Basic) свой xla-файл. Если под-окно Project Explorer не показывается - через пункт меню View включаете его.
    4) Кликаете 2 раза на вашем файле.
    5) Должен открыться список объектов (листов, модулей, форм и пр.) этого файла.
    6) Обычно vba-файлы не содержат на страницах какой либо информации, а только модули и формы VBA. Соответственно через окно Visual Basic и меняйте.
    7) Сохранять тоже через окно VBA - просто стоя на вашем файле в project explorer нажмите пункт меню Save в окне VBA.
     
    7) примечание1. Если при двойном клике на имени xla-файла в Project Explorer спрашивает пароль - то его надо знать!
     
    8) примечание2. Если все же xla-файл содержит табличные страницы - то "включить" их показ (и заодно всего этого файла xla в интерфейсе Excel, а не только VBA) можно через изменение свойства IsAddin объекта всей рабочей книги (показывается в Project Explorer если "раскрыть" xla-файл). Окно свойств это отдельное под-окно VBA, где показываются все properties активного объекта из Project Explorer, расположенное в правом нижнем углу VBA-окна. Таким образом, Надстройка это или обычный файл определяется не разрешением файла, а этим свойством! После показа в интерфейсе страниц - исправьте то что вам нужно и не забудьте назад поменять свойство IsAddin перед сохранением (сохранять потом уже соответственно через окно VBA). Если же цель наоборот из xla файла сделать обычный xls - то не меняйте это свойство, а просто сохраните под нужным вам именем.

    Всего записей: 251 | Зарегистр. 05-08-2005 | Отправлено: 10:52 19-08-2008
    MaximuS G

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, пожалуйста, что такое FormulaR1C1... или просто R1C1 ?
     
    Начинающий ))
     
    Добавлено:
    Опять вопрос ))
     
    Как оператором For... Next заполнить ячейки в ряду(колонке) определенными значениями, или существует другой оператор.
     
    Заранее спасибо!!!

    Всего записей: 113 | Зарегистр. 15-08-2008 | Отправлено: 12:55 19-08-2008
    SERGE_BLIZNUK

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MaximuS G
    что-то все молчат...  
    Ну ладно, тогда позвольте мне.
    задаёте конкретные вопросы - получаете конкретные ответы.
    Абстрактные вопросы - .... ну, Вы поняли мою мысль.
     

    Код:
     
      Row1 = ActiveWorkbook.ActiveSheet.UsedRange.Row
      Row2 = Row1 + ThisWorkbook.ActiveSheet.UsedRange.Rows.Count - 1
      Col1 = ActiveWorkbook.ActiveSheet.UsedRange.Column
      Col2 = Col1 + ThisWorkbook.ActiveSheet.UsedRange.Columns.Count - 1
     
     
      For j = Col1 To Col2
        For i = Row1 To Row2
            Cells(i, j).Value = "i=" & Str(i) & " j=" & str(j)
        Next i
      Next j
     

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 21:57 19-08-2008
    visual73



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

    Цитата:
    что-то все молчат...

    наверное не могут простым языком объяснить, только междометиями
     
    пардон
     
    MaximuS G

    Цитата:
    что такое FormulaR1C1

    Справочная система пишет:
    Returns or sets the formula for the object, using R1C1-style notation in the language of the macro. Read/write Variant
    а R - ряд, С - колонка т.е. R1C1 - другой формат ссылки/диапазона

    Всего записей: 962 | Зарегистр. 26-12-2005 | Отправлено: 08:52 20-08-2008 | Исправлено: visual73, 08:58 20-08-2008
    MaximuS G

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо за объяснение, но что-то я ничего не понял )))
     
    Попробую по конкретней:
     
    Есть диапазон ячеек С10:K10 - заполнить их значением 1 и выделить желтым цветом
    2) Необходимо начать рассматривать ряд снизу (11) на протяжении диапазона С11:Q11
    Есть условие: ячейка(С27) ниже на 16 рядов (например если необходимо заполнить С11 - то смотрим на С 27) должна быть либо >=0, либо <. Если > - то не заполняем и переходим на следующую в ряду, если <, то заполняем ее и следующие за ней 8 ячеек 1 и желтым цветом. Переходим на новый ряд...
     
    Если написал глупость так и скажите, буду пробовать что-то другое...
     
    Тогда буду пытаться как выделить диапазон для For i = 1я ячейка to последняя ячейка ...

    Всего записей: 113 | Зарегистр. 15-08-2008 | Отправлено: 10:42 20-08-2008
    visual73



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Не могу понять.
    На листе есть комбик.
    Пишу в workbook_Open:
     
      Dim shMain As Worksheet
      Set shMain = Worksheets("List1")
      shMain.cbКомбик.AddItem "1" - пишет ошибку
     
    Если же объявить так
      Dim shMain
    то все нормально. Почему не понятно.
     
    MaximuS G

    Цитата:
    Есть диапазон ячеек С10:K10 - заполнить их значением 1 и выделить желтым цветом

    for c=3 to 11
    cells(10, c).value=1
    cells(10, c).Interior.Color= 65535
    next
     

    Всего записей: 962 | Зарегистр. 26-12-2005 | Отправлено: 12:10 20-08-2008 | Исправлено: visual73, 12:25 20-08-2008
    MaximuS G

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    visual73
     
    Классно работает...  
     
    Почему у меня не работает? Как написать правильно?
     
    For c = 4 To 11                       ' выбираю рассм диапазон (как задать ряд??)
     If ActiveCell < 0 Then             'если значение активной ячейки меньше нуля, то
     ActiveCells.Offset(-1, 0) = 5    'выбираю ячейку выше активной на 1 ряд и активирую ее?
     End If
     Next
     
    Все таки пытаюсь сделать то, о чем писал в прошлом сообщении
     
    Добавлено:
    Как сделать активной, сам нашел ...
     
    ActiveCells.Offset(x, y).Select )))

    Всего записей: 113 | Зарегистр. 15-08-2008 | Отправлено: 13:19 20-08-2008
    visual73



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MaximuS G
    К сожалению то что у Вас написано в первом сообщении (как впрочем и во втором) мне непонятно - не литературным языком написано А додумывать за Вас мне лень.
    Что в целом вы хотите я так и не понял.
     
    For c = 4 To 11                       ' здесь никакой диапазон не выбирается, а переменной "с" передаются циклично значения от 4 до 11. Вот и все.
     If  cells(10, c).value < 0 Then             'здесь мы циклично проверяем каждую ячейку в строке 10 и столбцах от 4 до 11. Ячейки активировать не нужно, это увеличивает время выполнения программы.
     cells(10, c).Offset(-1, 0) = 5    'вставляем в ячейку смещенную относительно текущей (но не активной!! - это разная вещь)
     End If
     Next  
     
    Добавлено:
    кто бы еще и мне помог ;(

    Всего записей: 962 | Зарегистр. 26-12-2005 | Отправлено: 14:29 20-08-2008 | Исправлено: visual73, 14:52 20-08-2008
    MaximuS G

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо, но я так понимаю мне надо что-то другое... Вот то что я начал писать... Вставьте в Excel и я думаю вы поймете что мне надо сделать... Может это конечно дурь, но как тогда учиться??... Рассматривать нуждно с метки 1...
    Тоже не пойму, почему оператор Goto переводит программу на метку только после того, как закончит все до метки???...
    Сори за то, что много вопросов, наверное у всех так было по началу )))
     
     
    Sub tt()
     
    Range("C10:Q24").Select
    With Selection
        .HorizontalAlignment = xlCenter
    End With
    Selection.Interior.ColorIndex = xlNone
    Selection.Font.ColorIndex = 0
    Selection.ClearContents
     
    Подробнее...
     
     
    Добавлено:
    visual73
     

    Цитата:
     If  cells(10, c).value < 0 Then             'здесь мы циклично проверяем каждую ячейку в строке 10 и столбцах от 4 до 11. Ячейки активировать не нужно, это увеличивает время выполнения программы.  

     
    ... как сделать сдесь чтоб он перешел на другую операцию после того, как найдет первую нужную ячейку и выполнит операцию, не продолжая ???

    Всего записей: 113 | Зарегистр. 15-08-2008 | Отправлено: 15:30 20-08-2008 | Исправлено: MaximuS G, 09:43 21-08-2008
    ScorpionS



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Надо, чтобы при нажатии кнопки происходила фильтрация по определенному столбцу по типу "содержит...". Вроде код для кнопки выглядит так:

    Код:
    Private Sub CommandButton1_Click()
        ActiveSheet.Range("$A$1:$IR$65536").AutoFilter Field:=18, Criteria1:="=*1111*", Operator:=xlAnd
    End Sub

    Только, в частности, при такой записи Excel будет отфильтровывать строки, содержащие 1111. А мне нужно, чтоб отфильровывались строки, содержащие то, что записано в ячейке N3, т.е. значение этой ячейки. Подскажите, пожалуйста, как это сделать?

    Всего записей: 143 | Зарегистр. 24-02-2003 | Отправлено: 18:10 20-08-2008
    SERGE_BLIZNUK

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MaximuS G
    1) Более 15 строк рекомендуется скрывать за тэгом.
      пожалуйста, спрячьте Ваш большой код за тэгом [MORE] тут ваши изыскания [/MORE]
     
    2) рекомендуется код оформлять в тэги [CODE] ваш код... [/CODE]  
    так нагляднее, красивее и отступы внутри кода сохраняются.
     
    3) Очень не рекомендую использовать GOTO!!!
    любой переход может быть записан с помощью условных операторов, циклов и т.п...
     
    4) вы бы лучше словами рассказали, что решает Ваш макрос.
    Особенно вот эти повторяющиеся блоки:

    Код:
     
      Range("F11").Select  
      If Range("F27") >= 0 Then  
        ActiveCell.Offset(0, 1).Select  
      ElseIf Range("F27") < 0 Then  
        For c = 6 To 14  
          Cells(11, c).Value = 1  
          Cells(11, c).Interior.ColorIndex = 6  
        Next  
      End If  
     

     


    ScorpionS
    не проверял... но попробуйте вот так:

    Код:
    Private Sub CommandButton1_Click()  
        ActiveSheet.Range("$A$1:$IR$65536").AutoFilter Field:=18, Criteria1:="=*" & CStr([N3]) & "*", Operator:=xlAnd  
    End Sub  

     

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 20:04 20-08-2008
    MaximuS G

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SERGE_BLIZNUK
     
    За тегом... если б я знал что это ))
     
    Сейчас попробую.  
     
    Подробнее...  
     
     
     
    Добавлено:
    SERGE_BLIZNUK
     
    Так, хоть это у меня получилось))
     
    Теперь еще раз попробую объяснить... Что то у меня плохо получаеться...
    Есть поле для деятельности С10:Q24, программа должна начать рассматривать ряд(а их 14) с первой ячейки(С10, С11, С12...), и как только она находит ячейку, для которой выполняеться условие(ячейка находящаяся под ней в 27ряду ниже нуля), происходит автозаполнение справа... получаеться в одном ряду не должно быть больше 9ти заполненных ячеек...
    И еще есть сложный момент, ячейки не могут выходить за границу колонки Q, и получается что начиная с ячеек колонки J заполняться будет происходить так от минус 1 ячейка от колонки J (чтоб не выйти за границу), соответсвенно K -2, L -3 и последняя Q -9... Вообщем  так, если я придумал что сложное, то сори... Скажите, буду делать что другое...
     
     
    Код:
     
      Range("C11").Select                     '  выбираю первую ячейку в ряду
      If Range("C27") >= 0 Then           '   рассматриваю условие(то о чем писал выше)
        ActiveCell.Offset(0, 1).Select       '  выбираю справа от нее, если больше нуля, перехожу на следующую в ряду
      ElseIf Range("C27") < 0 Then        '  если меньше, заполняю справа ячейки  
        For c = 6 To 14                          '
          Cells(11, c).Value = 1               '
          Cells(11, c).Interior.ColorIndex = 6  '  
        Next  
      End If  
     

     
    Только подумал, может нужно рассматривать ряд 27... как-то от него плясать ???
    Спасибо

    Всего записей: 113 | Зарегистр. 15-08-2008 | Отправлено: 09:39 21-08-2008 | Исправлено: MaximuS G, 10:09 21-08-2008
    SERGE_BLIZNUK

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MaximuS G
    Цитата:
    Сейчас попробую.  
    спасибо. Так гораздо лучше!
    Так объясните, что Вы пытаетесь указанным куском кода сделать?
    по крайней мере, его лучше записать без дополнительного цикла. вот так (полностью аналогично тому, что делает Ваш код, только без циклов!

    Код:
      If Range("F27") >= 0 Then
        Range("F11").Offset(0, 1).Select 'хотя я бы лучше написал Range("F12").Select
      ElseIf Range("F27") < 0 Then
        With Range("F11:N11")
          .Value = 1
          .Interior.ColorIndex = 6
        End With
      End If

     
    вы бы рассказали, что хотите получить от своего кода... я, например, не понимаю...
     
    Добавлено:
    пока писал ответ, вы дополнили свой...
     
    Добавлено:
    Очень рекомендую Вам - создайте в Excel пример, один лист заполните исходными данными, думаю пары строк будет достаточно! ( там же через "Надпись" и стрелочки укажите, что проеряется, как заполняется...) так же желательно второй лист заполнить
     (так же пару строк) ЧТО должно получится после работы макроса.
    полученный пример запакуйте и выложите куда-нибудь на бесплатный хостинг (rapidshare.com или ifolder.ru или zalil.ru и т.д. ) сюда ссылку для скачивания.
    Тогда посмотрим.
     
    Добавлено:
    перечитал раза четыре... кажется, начал понимать.... если не дождусь примера, после обеда попытаюсь сделать так, как понял.
     
    Пока могу сказать, какую Вы ошибку (принципиальную!!!) делаете в своём коде.
    Как Вам уже указывали, чтобы работать с ячейкой (или диапазоном) их НЕ НУЖНО ВЫДЕЛЯТЬ!! Вам не нужно делать .select и использовать   ActiveCell... - просто указывайте ячейку (диапазон)
    Кроме того, мне кажется, что Вы - НЕ ПРОГРАММИСТ... :-( Это плохо,  
    т.к. тут циклы просто умоляют, чтобы ими воспользовались ;-)

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 10:13 21-08-2008
    ScorpionS



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SERGE_BLIZNUK
    Спасибо, вроде работает! Но не могу понять почему он фильтрует только 57184 строк. Ведь в коде явно указано $IR$65536. В чем может быть проблема?

    Всего записей: 143 | Зарегистр. 24-02-2003 | Отправлено: 11:00 21-08-2008
    nopoxz

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Можно ли как-то организовать проверку предидущей ячейки (по столбцу) на пустоту/наличие данных?
     
    Пытаюсь сделать что-то такое, не получается:  
     
    If IsEmpty(ячейка выше) Then...
     
    If NOT IsEmpty(ячейка выше) Then...

    Всего записей: 38 | Зарегистр. 02-07-2008 | Отправлено: 11:47 21-08-2008
    MaximuS G

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

    Цитата:
    Очень рекомендую Вам - создайте в Excel пример, один лист заполните исходными данными, думаю пары строк будет достаточно! ( там же через "Надпись" и стрелочки укажите, что проеряется, как заполняется...) так же желательно второй лист заполнить  
     (так же пару строк) ЧТО должно получится после работы макроса.  
    полученный пример запакуйте и выложите куда-нибудь на бесплатный хостинг (rapidshare.com или ifolder.ru или zalil.ru и т.д. ) сюда ссылку для скачивания.

     
    http://rapidshare.com/files/138938092/__1056___1072___1089___1087___1080___1089___1072___1085___1080___1077____1087___1086____1082___1072_.html
    Вот сдесь этот файлик...
     
    Там очень много условий... Поэтому если это забирет у Вас много времени, сил и т.д.,
    сделайте то что достаточно просто... Это мне не обязательно надо, просто хотелось бы немного автоматизировать...
     

    Цитата:
    Кроме того, мне кажется, что Вы - НЕ ПРОГРАММИСТ... Это плохо,  

    Да Совсем не программист, но всегда мечтал ...
     
    Спасибо за помощь!

    Всего записей: 113 | Зарегистр. 15-08-2008 | Отправлено: 12:18 21-08-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