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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2011, 10:56   #1
horpenst
Пользователь
 
Регистрация: 07.03.2011
Сообщений: 40
По умолчанию найти ошибку

Помогите найти ошибку.
Sub h()
If Range("a1:a5") = Range("b1:b5") Then
Range("a1:b5").ClearContents
End If
End Sub
horpenst вне форума Ответить с цитированием
Старый 10.04.2011, 11:18   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Sub h()
  dim ClCn as boolean, i as long
  clcn = true
  for i = 1 to Range("a1:a5").cells.count
    Range("a1:a5").cells(i) <> Range("b1:b5").cells(i) Then clcn = false: exit for
  next
  if clcn then Range("a1:b5").ClearContents
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 10.04.2011, 15:04   #3
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Игорь, If пропустил.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 10.04.2011, 15:27   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

спасибо, точно, пропустил.
та... пишу прямо сюда, редактор бы всполошился: then без if!!!.
хорошо, что ты выступил в роли редактора и бдительно зарубил ошибку.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 10.04.2011, 15:39   #5
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Свой вариант, без цикла:
Код:
Sub h1()
Dim a, b: a = [a1:a5]: b = [b1:b5]
 If Join(Application.Index(a, 1, 0),"|") = Join(Application.Index(b, 1, 0),"|") Then [a1:b5].ClearContents
End Sub
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728

Последний раз редактировалось kuklp; 10.04.2011 в 15:42.
kuklp вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти ошибку Славик__077 Общие вопросы C/C++ 0 31.01.2011 14:39
найти ошибку IceFlame1292 Помощь студентам 4 11.01.2011 20:14
найти ошибку Veronik@ Общие вопросы C/C++ 0 24.11.2010 21:50
найти ошибку rUs_LAN Общие вопросы C/C++ 8 14.05.2009 12:02