Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.08.2009, 17:20   #1
Last
В прострации
Форумчанин
 
Регистрация: 13.01.2009
Сообщений: 239
По умолчанию Проверка диапазона ячеек

доброго времени суток, возник маленький вопрос, можно ли указывать компилятору для проверки диапазон ячеек, так чтобы он проверял условие в каждой из этого диапазона?
например: нужно проверить 100 ячеек (А1:А100) на условие, если условие выполняется, то с той ячейкой в которой оно выполняется произвести изменения.
можно конечно ручками ввести по одной, но это будет оочень долго, что скажут профессионалы?
Пол-жизни сидючи, в монитор глядючи...
Last вне форума Ответить с цитированием
Старый 16.08.2009, 17:58   #2
Cannibal
Форумчанин
 
Регистрация: 17.02.2008
Сообщений: 191
По умолчанию

А цикл вам чем не угодил?

Код:
For i = 1 to КоличествоЯчеек
    If cells(1,i)=чему-то then ........
next
А вобще покажите пример
Mathematicians often mix up Christmas and Halloween, because Dec.25=Oct.31.
Cannibal вне форума Ответить с цитированием
Старый 16.08.2009, 18:16   #3
Last
В прострации
Форумчанин
 
Регистрация: 13.01.2009
Сообщений: 239
По умолчанию

Прошу прощения, что сразу не выложил. Страница сделана не очень удобно, а мне нужно "слепить" переменную из ячеек, содержащих буквы имени(фамилии, отчества и т.п.).
В отношении синтаксиса VBA я совсем нуб, т.е. cell(1,1) это ячейка A1 и cell(2,1) это ячейка B1?
Изображения
Тип файла: jpg ex.jpg (52.0 Кб, 136 просмотров)
Пол-жизни сидючи, в монитор глядючи...
Last вне форума Ответить с цитированием
Старый 16.08.2009, 18:19   #4
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Нет, Cells(2, 1).Value устанавливает значение для ячейки A2
motorway вне форума Ответить с цитированием
Старый 16.08.2009, 18:28   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Страница сделана не очень удобно, а мне нужно "слепить" переменную из ячеек, содержащих буквы имени(фамилии, отчества и т.п.).
Тут простым циклом не ограничиться.

Проще всего сделать пользовательскую функцию, которая в качестве параметра будет принимать диапазон ячеек (например, a69:by69), и возвращать текст, содержащийся в указанном диапазоне (без лишних пробелов).
В качестве критерия (какие ячейки обрабатывать, а какие - нет) можно использовать цвет ячейки.

В любом случае, без примера файла, и подробного описания задачи, посоветовать что-либо конкретное будет очень сложно.
EducatedFool вне форума Ответить с цитированием
Старый 16.08.2009, 18:50   #6
Cannibal
Форумчанин
 
Регистрация: 17.02.2008
Сообщений: 191
По умолчанию

еслои я правильно понял, вам нужно ФИО Загнать в переменную? если это так, то при ячейках, как во вложении код работает. дальше можно разобраться по аналогии
Код:
s = ""
i = 9
Do While (i < (76)) Or (Cells(77, i) <> "")
   s = s + Cells(77, i)
   i = i + 2
Loop
s = s + " "
i = 9
Do While (i < (37)) Or (Cells(79, i) <> "")
   s = s + Cells(79, i)
   i = i + 2
Loop
s = s + " "
i = 45
Do While (i < (76)) Or (Cells(79, i) <> "")
   s = s + Cells(79, i)
   i = i + 1
Loop
Mathematicians often mix up Christmas and Halloween, because Dec.25=Oct.31.

Последний раз редактировалось Cannibal; 16.08.2009 в 19:07.
Cannibal вне форума Ответить с цитированием
Старый 16.08.2009, 18:50   #7
Last
В прострации
Форумчанин
 
Регистрация: 13.01.2009
Сообщений: 239
По умолчанию

Код:
 Dim asd As String
 Dim i As Integer
 For i = 40 To 151 " просматривать от ячейки AN32 до EU32"
  If Cells(32, i) <> "" Then asd = asd + Range(32, i) " тут вылазит ошибка Method "range" of object "_global" failed"
 Next
 Range("a58") = asd
малоинформативный текст ошибки какбэ не даёт мне понять, чего от меня хотят, я считаю что дело в неправильном присваивании, как присвоить строковой переменной содержание ячейки с адресом (32,i) правильно?
Пол-жизни сидючи, в монитор глядючи...

Последний раз редактировалось Last; 16.08.2009 в 18:53.
Last вне форума Ответить с цитированием
Старый 16.08.2009, 18:56   #8
Last
В прострации
Форумчанин
 
Регистрация: 13.01.2009
Сообщений: 239
По умолчанию

а если написать
asd = asd + Cells(32, i), то вылазит type mismatch, хмм
Пол-жизни сидючи, в монитор глядючи...
Last вне форума Ответить с цитированием
Старый 16.08.2009, 19:15   #9
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

asd = asd & Cells(32, i)
EducatedFool вне форума Ответить с цитированием
Старый 16.08.2009, 19:19   #10
Last
В прострации
Форумчанин
 
Регистрация: 13.01.2009
Сообщений: 239
По умолчанию

заработало, спасибо=)
Пол-жизни сидючи, в монитор глядючи...
Last вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объединение данных из диапазона ячеек Lal Microsoft Office Excel 8 12.08.2009 11:24
Как добавить сразу несколько ячеек к каждой ячейке некоего диапазона? eugenerud Microsoft Office Excel 20 24.07.2009 19:18
проверка диапазона Bezdar Microsoft Office Excel 15 30.07.2008 08:59
Цикл для просмотра диапазона и выбора нужных ячеек. Dorvir Microsoft Office Excel 8 21.07.2008 06:33