![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#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. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Конечно, эту задачу можно решить по разному, более оптимально. Но в Вашем случае задан неверный выход из цикла: "Выполнять до тех пор, пока...". Т.е. нужно изменить знак "=" на знак "<>".
P.S. И смените имя макроса. "q1" - это адрес ячейки. Лучше избегать подобных совпадений.
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 24.06.2008
Сообщений: 516
|
![]()
Замени
Код:
Код:
Можно сделать все! Было бы время, да деньги...
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 12.02.2010
Сообщений: 16
|
![]()
Пробовал, на практике код отрабатывает с = без сообщений.
|
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]() Цитата:
Чем шире угол зрения, тем он тупее.
|
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 13.01.2010
Сообщений: 410
|
![]()
не знаю. у меня все работает
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 12.02.2010
Сообщений: 16
|
![]()
Уважаемый SAS888! Выкладываю сам файл. Поправте пож-та, если возможно - поставьте комментарий
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 12.02.2010
Сообщений: 16
|
![]()
Dolphin - спасибо за пример! Подскажите пожалуйста а что за "Option Explicit"? Что это дает? Кроме этого мой код отличается от вашего Объявлением I. VBA не поддерживает автоматическое объявление переменных?
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 13.01.2010
Сообщений: 410
|
![]()
Вот как раз Option Explicit запрещает использование автоматического использования переменных, все переменные нужно объявлять явно.
Для новичков вроде меня - очень полезно. Да и код потом вычитывать проще. Как видите код точь в точь как Ваш и все работает ) З.Ы. и не надо коверкать мой ник |
![]() |
![]() |
![]() |
#10 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
И вообще - зачем в данном случае макрос? Не проще ли подсветить ячейки первого столбца, которые совпадают с ячейкой 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 |