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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2009, 15:53   #1
SoFuWa
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 64
По умолчанию Помогите со скриптом

Решил автоматизировать примитивный процесс, надоело руками делать.
Есть список номеров и нужно сравнивать ячейку на содержание в ней одного из номеров, ячейки формата "общий", мне нужно не точное равенство, а что бы стаивлась галочка если в ячейки содержится такие-то цифры.
В визуал бейсике ничего почти не понимаю
вот примерно такой смысл
For i = 1 To 3
ActiveCell.Select
If ActiveCell.Value = 2867657 Then
ActiveCell.Offset(0, -1).Range("A1").Select
ActiveCell = "x"
ActiveCell.Offset(0, 1).Range("A1").Select
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Next i
End Sub

Но требуется, проверять не на равенство и не одно числа, а сверять на содержание с группой ячеек в которой числа, подскажите хоть синтаксис и дальше я сам сварганю. Как можно сверять с групой ячеек по очереди? Понятно что цикл внутри цикла, но как предедвигатся от ячейки к ячейке в списке значений, ActiveCell то я уже использую на первом списке. Огромное спасибо заранее
SoFuWa вне форума Ответить с цитированием
Старый 20.03.2009, 15:57   #2
lazy_tom_cat
Пользователь
 
Регистрация: 20.03.2009
Сообщений: 18
По умолчанию

Зачем юзать VBA если есть СЧЁТЕСЛИ?

Дружище, используй эту функцию и не майся дурью.
VBA нужно использовать тогда, когда стандартные средства Excel бессильны....
lazy_tom_cat вне форума Ответить с цитированием
Старый 20.03.2009, 16:01   #3
SoFuWa
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 64
По умолчанию

Во первых все таки мне нужен скрипт в VBA и сделать его проще протого, тому кто хоть что то понимает в VBA, не то что я
Во вторых СЧЕТЕСЛИ - подсчитывает кол-во непустых ячеек в диапазоне, удовлетворяющем заданному условию.
Не понимаю как можно это использовать в моем случае, мне не нужен подсчет непустых ячеек
SoFuWa вне форума Ответить с цитированием
Старый 20.03.2009, 16:06   #4
lazy_tom_cat
Пользователь
 
Регистрация: 20.03.2009
Сообщений: 18
По умолчанию

Цитата:
Сообщение от SoFuWa Посмотреть сообщение
Во вторых СЧЕТЕСЛИ - подсчитывает кол-во непустых ячеек в диапазоне, удовлетворяющем заданному условию.
Не понимаю как можно это использовать в моем случае, мне не нужен подсчет непустых ячеек
Кто тебе такое сказал????

Как раз СЧЁТЕСЛИ позволяет подсчитать кол-во ячеек по любому условию, даже с использованием специальных символов * и ?.

Ты справку хотя бы читал?

По поводу того как может помочь. Прописываешь формулу типа такой:
=ЕСЛИ(СЧЁТЕСЛИ(Диапазон;Условие)<>0 ;1;0)

Эта формула проставит 1 (вместо галочки).
VBA нужно использовать тогда, когда стандартные средства Excel бессильны....
lazy_tom_cat вне форума Ответить с цитированием
Старый 20.03.2009, 16:11   #5
SoFuWa
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 64
По умолчанию

Справку я смотрел и там именно такое определение. У меня больше 200 номеров, которые нужно искать в базе из нескольких тысяч строк.
Подскажите синтаксис сравнения в VBA
SoFuWa вне форума Ответить с цитированием
Старый 20.03.2009, 16:27   #6
lazy_tom_cat
Пользователь
 
Регистрация: 20.03.2009
Сообщений: 18
По умолчанию

Я считаю что тебе нужна функция счётесли. Ну если ты настаиваешь...

Есть два способа перебора ячеек:
1) Через объект Cells
2) Объектный способ через объект Range

Вод код для первого способа:
For i = 1 To 3
cells(i,3).value
next

Вот код для второго способа
Dim r as range
For Each r in Range("A1:A5")
r.value
Next

Хочешь иметь геморрой - имей, мне то что
VBA нужно использовать тогда, когда стандартные средства Excel бессильны....
lazy_tom_cat вне форума Ответить с цитированием
Старый 20.03.2009, 16:30   #7
lazy_tom_cat
Пользователь
 
Регистрация: 20.03.2009
Сообщений: 18
По умолчанию

А вообще если хочешь, выложи пример и я тебе помогу
VBA нужно использовать тогда, когда стандартные средства Excel бессильны....
lazy_tom_cat вне форума Ответить с цитированием
Старый 20.03.2009, 16:56   #8
SoFuWa
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 64
По умолчанию

Канеш хочу
Вот 3 значения в примере, если нажать cntrl+W, скрипт поставит галочку, но это просто равенство и сравнивает только 2867657
Нада шоб этих трех ячейках он искал правые два числа и если нашел то ставил "x"
Вложения
Тип файла: rar primer.rar (12.0 Кб, 13 просмотров)
SoFuWa вне форума Ответить с цитированием
Старый 20.03.2009, 17:04   #9
SoFuWa
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 64
По умолчанию

Вот на основе cells сделал пример
Вложения
Тип файла: rar primer.rar (11.4 Кб, 12 просмотров)

Последний раз редактировалось SoFuWa; 20.03.2009 в 17:13.
SoFuWa вне форума Ответить с цитированием
Старый 20.03.2009, 17:17   #10
SoFuWa
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 64
По умолчанию

вообчем то в примере уже все работает кроме сравнения на содержание
Sub asd()
For i = 2 To 4
For n = 2 To 3
If Cells(i, 2).Value = Cells(n, 7).Value Then
Cells(i, 1).Select
ActiveCell = "x"
End If
Next n
Next i
End Sub


В строке If Cells(i, 2).Value = Cells(n, 7).Value Then нужно чтоб не равенство проверялось а содержание числа которое в ячейке Cells(n, 7).Value в ячейке Cells(i, 2).Value.
SoFuWa вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите со скриптом ZerokuL Помощь студентам 10 05.04.2008 11:07
Помогите разобраться со скриптом.... fclmhooligan JavaScript, Ajax 13 14.02.2008 22:36