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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2013, 13:33   #1
Chilli81
 
Регистрация: 28.01.2013
Сообщений: 4
По умолчанию Runtimeerror 13 в Ексель

Уважаемые форумчане, прошу помощи в исправлении ошибки Runtime-error 13 Type missmatch котора выскакивает при попытке запустить макрос на поиск и сравнение даных в различных листах Ексель...Вот текст макроса
Private Sub CommandButton1_Click()
ri = 2 ' Сброс /Счетчик строк для цикла While -> Wend

While Лист1.Cells(ri, 9) <> "" ' Начало Перебор строк по условию "пока ячейка не пуста"

For i = 1 To 209 ' Начало /Цикл перебора данных для подстановки
If Str(Лист1.Cells(ri, 9)) + Str(Лист1.Cells(ri, 10)) = Str(Лист2.Cells(i, 1)) + Str(Лист2.Cells(i, 2)) Then ' Поиск соответствий
Лист1.Cells(ri, 12) = Лист2.Cells(i, 3) ' Запись найденых соответствий на Лист1
Лист1.Cells(ri, 11) = Лист2.Cells(i, 4) ' Запись найденых соответствий на Лист1
End If
Next i

ri = ri + 1 ' Следующая строка /Счетчик строк для цикла While -> Wend
Wend ' Конец /Перебор строк по условию "пока ячейка не пуста"

End Sub
Красным выделил строку на которую ссылается дебаггер, пустых ячеек в строках нет, формат ячеек в обоих листах общий
Заранее благодарен

Последний раз редактировалось Chilli81; 28.01.2013 в 13:49.
Chilli81 вне форума Ответить с цитированием
Старый 28.01.2013, 14:39   #2
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Str, если память не изменяет, переводит число в текст. Несоответствие типов возникает если в ячейках строки. попробуйте такой вариант:
Код:
If Лист1.Cells(ri, 9) & Лист1.Cells(ri, 10) = Лист2.Cells(i, 1) & Лист2.Cells(i, 2) Then
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 28.01.2013, 15:34   #3
Chilli81
 
Регистрация: 28.01.2013
Сообщений: 4
По умолчанию

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

Последний раз редактировалось Chilli81; 28.01.2013 в 15:38.
Chilli81 вне форума Ответить с цитированием
Старый 28.01.2013, 16:49   #4
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

вот в этой теме много примеров решения вашей задачи. нужно только их доработать немного:

http://programmersforum.ru/showthread.php?t=220382
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 28.01.2013, 16:57   #5
Chilli81
 
Регистрация: 28.01.2013
Сообщений: 4
По умолчанию

спасибо, попробую по аналогии что-то сварганить....Просто еще не научился нормально с циклами работать
Chilli81 вне форума Ответить с цитированием
Старый 28.01.2013, 17:59   #6
Chilli81
 
Регистрация: 28.01.2013
Сообщений: 4
По умолчанию

Все пошло нормально, спасибо за совет)
Chilli81 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графика в ексель Petrpervy Microsoft Office Excel 2 13.09.2012 23:04
Задача Ексель magneTo1 Microsoft Office Excel 8 21.03.2012 03:25
Задача в ексель. malova Помощь студентам 3 05.01.2010 16:11
Делфи + ексель AnnNet Общие вопросы Delphi 1 21.02.2009 00:10
Функции в Ексель Юра_ Microsoft Office Excel 5 16.12.2008 14:26