Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Elena666
5 / 5 / 0
Регистрация: 27.04.2015
Сообщений: 172
#1

Ошибка при сравнении диапазонов - несоответствие типов - VBA

04.06.2015, 14:36. Просмотров 384. Ответов 9
Метки нет (Все метки)

Здравствуйте,
проблема в следующем:

пытаюсь сравнить два диапазона на Листе1 "Общий" диапазон B4:B6 и Листе18 "ОК" диапазон A1:A3. Соответственно, при равенстве - происходит заливка диапазона B4:B6 на Листе1.
http://www.cyberforum.ru/vba/thread716694.html
Visual Basic
1
2
 
If Evaluate("AND(" & Sheets("Общий").Name & "!B4:B6=" & Sheets(2).Name & "!A1:A3)") Then Sheets("Общий").Range("B4:B6").Interior.ColorIndex = 4
Но возникает ошибка:
Run-time error 13
Tipe mismatch
И до слова "then" выделяет желтым

Может тут проблема с названием листов или с порядком страниц в книге? Подскажите, пожалуйста, как можно исправить.

Добавлено через 34 минуты
Прошу прощение не ОК, а Nok2. Заполнение Лист1 B4:B6 происходит формулами, листа NOK посредством юзерформы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2015, 14:36
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ошибка при сравнении диапазонов - несоответствие типов (VBA):

Несоответствие типов при задании параметров From и To метода PrintOut
Выдает ошибку не соответствия типов при таком коде. Dim С As Integer С = 1...

Ошибка при сравнении переменных
Люди добрые,помогите пожалуйста!Специально зарегистрировался,чтобы задать этот...

Ошибка при сравнении значений ячеек в разных книгах
Извините может кто подскажет, столкнулся с такой проблемой. У меня выгружаются...

Несоответствие типов данных в выражении условия отбора
Доброго времени суток. Стоит задача реализовать архивацию данных в другую...

Ошибка: "Несоответствие типа" при распечатке документа
есть код: Application.PrintOut fileName:="", Range:=wdPrintSelection,...

9
SoftIce
comment ca va
10412 / 3914 / 999
Регистрация: 27.07.2011
Сообщений: 9,470
Завершенные тесты: 1
04.06.2015, 17:23 #2
Цитата Сообщение от Elena666 Посмотреть сообщение
Может тут проблема с названием листов или с порядком страниц в книге?
"Общий" может быть любым по счету, а "Nok2" - обязательно вторым. Кстати, почему Вы к нему не обращаетесь по имени?
У меня Ваша строка работает и заливает.
0
Казанский
13866 / 5629 / 1431
Регистрация: 24.09.2011
Сообщений: 8,832
04.06.2015, 18:17 #3
Elena666, ошибка происходит, если в Параметрах Excel выбран стиль ссылок R1C1.
Метод Evaluate чувствителен к стилю ссылок.
http://www.cyberforum.ru/vba/thread1454729.html#post7665476
0
Elena666
5 / 5 / 0
Регистрация: 27.04.2015
Сообщений: 172
05.06.2015, 00:21  [ТС] #4
Спасибо, но со стилем ссылок все в порядке. Здесь какая-то другая причина.
0
Sasha_Smirnov
5459 / 1299 / 142
Регистрация: 08.02.2009
Сообщений: 4,008
Записей в блоге: 29
05.06.2015, 00:38 #5
Elena666
0
Казанский
13866 / 5629 / 1431
Регистрация: 24.09.2011
Сообщений: 8,832
05.06.2015, 00:45 #6
Цитата Сообщение от Elena666 Посмотреть сообщение
Здесь какая-то другая причина
Давайте погадаем: в ячейках значение ошибки? Имя листа содержит пробел, кавычку или апостроф?
Или все же файл выложите?
0
Elena666
5 / 5 / 0
Регистрация: 27.04.2015
Сообщений: 172
05.06.2015, 00:53  [ТС] #7
Пример в приложении.
0
Вложения
Тип файла: zip Сравнение.zip (33.4 Кб, 2 просмотров)
Казанский
13866 / 5629 / 1431
Регистрация: 24.09.2011
Сообщений: 8,832
05.06.2015, 01:14 #8
Elena666, у меня ошибка не возникает, но ячейки не окрашиваются при вводе совпадающих данных. Поменял код кнопки - сравните со своим
Visual Basic
1
2
3
4
5
6
Private Sub CommandButton1_Click()
    Лист8.Range("A1") = CDate(TextBox1)  'Дата
    Лист8.Range("A2") = TextBox2   'Фамилия
    Лист8.Range("A3") = TextBox3   'должность
Call IsRangesEqual
End Sub
0
Sasha_Smirnov
5459 / 1299 / 142
Регистрация: 08.02.2009
Сообщений: 4,008
Записей в блоге: 29
05.06.2015, 01:21 #9
Нажал на кнопку на листе "Общий"; ввёл в поля формы 18.04.2015/Орлов/певец

Нажатие кнопки "Заполнить/сравнить" вывело эти данные на лист "NOK2". Ну и что?

Очевидно, здесь «потрудился»
Visual Basic
1
2
3
4
5
6
Private Sub CommandButton1_Click()
Call IsRangesEqual
    Лист8.Range("A1") = TextBox1  'Дата
    Лист8.Range("A2") = TextBox2   'Фамилия
    Лист8.Range("A3") = TextBox3   'должность
End Sub
А каково назначение всего проекта?

Цитата Сообщение от Казанский Посмотреть сообщение
Поменял код кнопки - сравните со своим
Удивительно: меня как раз изначально смутило, что Call перед заполнением!

Как и то, что просмотров 0 (а не 2):
0
Миниатюры
Ошибка при сравнении диапазонов - несоответствие типов  
Elena666
5 / 5 / 0
Регистрация: 27.04.2015
Сообщений: 172
06.06.2015, 13:28  [ТС] #10
Спасибо большое. Разобралась. Заработало.
1
06.06.2015, 13:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2015, 13:28
Привет! Вот еще темы с решениями:

Помогите побороть ошибку "Несоответствие типов" в приложенном программном коде
Dim F1 As Double, i As Integer, z As Integer, F2 As Double Dim x(10) As...

Ошибка в сравнении двух массивов (Subscript out of range)
Уважаемые форумчане, здравствуйте, есть программа сравнения двух массивов...

Фиксирование числа при сравнении
Есть данные которые считываются из файла (цены акции) за определенный период....

Исправить ошибку при сравнении дат
помогите пожалуйста, пытаюсь сравнить даты в одном столбце, текущую с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru