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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.08.2011, 09:02   #1
Vja4eslav
Пользователь
 
Регистрация: 13.08.2011
Сообщений: 90
Вопрос Как правильно применить операцию Xor ?

Здравствуйте, уважаемые форумчане ))
Пытаюсь сам написать макрос (Excel 2003) и никак не получается использовать операцию "Xor". В примере стоит "Or", а мне надо поставить "Xor", но VBA ругается:
If Cells(i, 9).Value = m Or Cells(i, 9).Value = m + 1 And Cells(i, 6).Value = Cells(2, 14).Value Then

Помогите, пожалуйста, понять - как применить "Xor" вместо "Or" в этом примере
Vja4eslav вне форума Ответить с цитированием
Старый 15.08.2011, 09:24   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
как применить "Xor" вместо "Or" в этом примере
Очень просто - меняете OR на XOR
В чем сложность?

Цитата:
но VBA ругается
какую ошибку выдаёт?
букву X, надеюсь, вы ставите английскую?
EducatedFool вне форума Ответить с цитированием
Старый 15.08.2011, 09:26   #3
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Ячейка Cells(i, 9) равна m или Ячейка Cells(i, 9) равна m+1 - это понятно.
Разница между ИЛИ и исключавющим_ИЛИ только в случае выполнения условий. Такой случай в Вашем примере никогда не наступит: не может одна ячейка одновременно равняться двум значениям.

Возможно, пропущены скобки
усл1 xOr (усл2 And усл3)?

Последний раз редактировалось vikttur; 15.08.2011 в 09:37.
vikttur вне форума Ответить с цитированием
Старый 15.08.2011, 09:50   #4
Vja4eslav
Пользователь
 
Регистрация: 13.08.2011
Сообщений: 90
По умолчанию

Если просто меняю "Or" на "Xor", то выделяет всю строчку красным цветом и пишет:"Ошибка компиляции: Ожидалось Then или GoTo"...
Vja4eslav вне форума Ответить с цитированием
Старый 15.08.2011, 09:54   #5
Vja4eslav
Пользователь
 
Регистрация: 13.08.2011
Сообщений: 90
По умолчанию

Прошу прощения, всё получилось! Действительно, как сказал EducatedFool я вместо английской X написал русскую Х. Извините, что отнял Ваше время и большое спасибо !
Vja4eslav вне форума Ответить с цитированием
Старый 15.08.2011, 10:12   #6
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Цитата:
Сообщение от vikttur Посмотреть сообщение
Возможно, пропущены скобки
усл1 xOr (усл2 And усл3)?
Виктор,
без скобок выполняется так же, And имеет более высокий приоритет. Попробуй в окне Immediate
Код:
?1 xor 0 and 0
?(1 xor 0) and 0
?1 xor 1 and 0
?(1 xor 1) and 0
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 15.08.2011, 10:14   #7
Vja4eslav
Пользователь
 
Регистрация: 13.08.2011
Сообщений: 90
По умолчанию

Спасибо )))
Vja4eslav вне форума Ответить с цитированием
Старый 15.08.2011, 10:29   #8
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Казанский, спасибо.
vikttur вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Qt] Как применить сигнал в даной программе? Enchance Qt и кроссплатформенное программирование С/С++ 6 08.03.2011 16:05
Как применить атрибут скрытый файлу? Hichigo Общие вопросы C/C++ 1 22.07.2010 23:05
Как применить поправочный коэфф. в ранжировке? NiYa Microsoft Office Excel 2 03.05.2010 01:00
Как применить изменение в реестре? KWN, lnc Общие вопросы Delphi 2 11.05.2009 00:10
Не знаю, как применить СУММЕСЛИ Katherina_Koval Microsoft Office Excel 2 30.07.2008 13:56