|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.02.2010, 11:28 | #1 |
Пользователь
Регистрация: 12.02.2010
Сообщений: 16
|
ошибка в коде?
Добрый день! Помогите пожалуйста найти ошибку. Суть задачи: значение ячейки из второго столбца первой строки сравнивается со значениями из первого столбца (неограниченной длинны). В случае совпадений - выводится сообщение.
Код: Sub q1() i = 1 Do While Cells(i, 1).Value <> "" If Cells(i, 1).Value = Cells(1, 2).Value Then MsgBox ("Значения совпадают") End If i = i + 1 Loop End Sub Не могу понять почему не работает. Подскажите пож-та. Последний раз редактировалось Darkdog; 26.02.2010 в 11:31. |
26.02.2010, 11:34 | #2 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Конечно, эту задачу можно решить по разному, более оптимально. Но в Вашем случае задан неверный выход из цикла: "Выполнять до тех пор, пока...". Т.е. нужно изменить знак "=" на знак "<>".
P.S. И смените имя макроса. "q1" - это адрес ячейки. Лучше избегать подобных совпадений.
Чем шире угол зрения, тем он тупее.
|
26.02.2010, 11:35 | #3 |
Форумчанин
Регистрация: 24.06.2008
Сообщений: 516
|
Замени
Код:
Код:
Можно сделать все! Было бы время, да деньги...
|
26.02.2010, 11:51 | #4 |
Пользователь
Регистрация: 12.02.2010
Сообщений: 16
|
Пробовал, на практике код отрабатывает с = без сообщений.
|
26.02.2010, 11:57 | #5 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Цитата:
Чем шире угол зрения, тем он тупее.
|
|
26.02.2010, 12:05 | #6 |
Форумчанин
Регистрация: 13.01.2010
Сообщений: 410
|
не знаю. у меня все работает
|
26.02.2010, 12:08 | #7 |
Пользователь
Регистрация: 12.02.2010
Сообщений: 16
|
Уважаемый SAS888! Выкладываю сам файл. Поправте пож-та, если возможно - поставьте комментарий
|
26.02.2010, 12:13 | #8 |
Пользователь
Регистрация: 12.02.2010
Сообщений: 16
|
Dolphin - спасибо за пример! Подскажите пожалуйста а что за "Option Explicit"? Что это дает? Кроме этого мой код отличается от вашего Объявлением I. VBA не поддерживает автоматическое объявление переменных?
|
26.02.2010, 12:15 | #9 |
Форумчанин
Регистрация: 13.01.2010
Сообщений: 410
|
Вот как раз Option Explicit запрещает использование автоматического использования переменных, все переменные нужно объявлять явно.
Для новичков вроде меня - очень полезно. Да и код потом вычитывать проще. Как видите код точь в точь как Ваш и все работает ) З.Ы. и не надо коверкать мой ник |
26.02.2010, 12:18 | #10 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
И вообще - зачем в данном случае макрос? Не проще ли подсветить ячейки первого столбца, которые совпадают с ячейкой B1, при помощи условного форматирования? Никаких макросов, и сразу видны все совпадения... |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ошибка в коде Си | Misha_M. | Помощь студентам | 2 | 05.02.2010 15:41 |
Ошибка в коде | konstantinopol | Общие вопросы по Java, Java SE, Kotlin | 1 | 26.10.2009 23:21 |
Ошибка в коде.. | NSvirus | PHP | 4 | 14.10.2009 22:57 |
Ошибка в коде. | fanyl | Паскаль, Turbo Pascal, PascalABC.NET | 10 | 21.09.2009 12:09 |
Ошибка в коде | nikleb | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 10.03.2008 22:48 |