Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > Visual Basic
Перезагрузить страницу Сравнение двух массивов в Excel'e
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
edgar edgar вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 20.08.2007
По умолчанию 20.08.2007, 15:26

Есть два sheet'a(Sheet1 & Sheet2). Каждый имеет таблицу, состоящую из из двух колонок - первая - числа, вторая - текст.
Нужно сравнить 1й шит со 2м по принципу - если строка из двух колонок первого массива совпадает со строкой во втором(xi=xj, yi=yj) - то напротив каждой строки в двух шитах пишем "1", если же нет совпадений - то нолик.
Пример:
мас1(искомый)
11 Лена 1
12 Маша 0
13 Вика 1
14 Лера 1
15 Рита 0
мас2(проверяемый)
11 Лена 1
13 Вика 1
123 Маша 0
15 Рима 0
14 Лера 1

Третья строка - рез-т, который я должен получить.
Я написал макрос, но он неправильно работает. Опыта в программировании у меня почти нет, так что я очень надеюсь на вашу помощь.

Код:
Dim xj As Double
Dim yi As String
Dim yj As String
Dim j As Double
Dim i As Double
Application.ScreenUpdating = False
Sheet9.Activate
i = 2
xi = Cells(i, 1).Value
yi = Cells(i, 2).Value
Do Until i = 646
Sheet2.Activate
j = 6
Do Until j = 3060
xj = Cells(j, 3).Value
yj = Cells(j, 4).Value
If xj = xi And yj = yi Then
Sheet2.Activate
Cells(j, 8).Value = "1"
Sheet9.Activate
Cells(i, 8).Value = "1"
Sheet2.Activate
Else
Sheet2.Activate
Cells(j, 8).Value = "0"
Sheet9.Activate
Cells(i, 8).Value = "0"
Sheet2.Activate
End If
j = j + 1
Loop
i = i + 1
Loop
End Sub
ЗЫ: заранее спасибо
Ответить с цитированием
  (#2 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,266
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 20.08.2007, 16:52

А почему тут
Код:
xj = Cells(j, 3).Value
yj = Cells(j, 4).Value
индексы 3 и 4 ? Вероятно, должно быть все же 1 и 2

Не напутано ли с листами? Почему они вдруг такие имена имеют? Может, лучше по названию?
Код:
Worksheets("Лист1").Cells(i, 3).Value = 1
Ответить с цитированием
  (#3 (permalink)) Старый
edgar edgar вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 20.08.2007
По умолчанию 20.08.2007, 17:33

Не, тут все верно - просто листов много, а таблица больше - мне нужно сравнить только по некоторым параметрам.
Код:
Sub find()
Dim xi As Double
Dim xj As Double
Dim yi As String
Dim yj As String
Dim j As Double
Dim i As Double
Application.ScreenUpdating = False
Sheet1.Activate
i = 1
xi = Cells(i, 1).Value
yi = Cells(i, 2).Value
Do Until i = 11
Sheet2.Activate
j = 1
Do Until j = 10
xj = Cells(j, 1).Value
yj = Cells(j, 2).Value
If xj = xi And yj = yi Then
Sheet1.Activate
Cells(i, 3).Value = "1"
Sheet2.Activate
Cells(j, 3).Value = "1"
Sheet1.Activate
Else: j = j + 1
End If
Loop
i = i + 1
Loop
End Sub
Я тут доработал код, сделал на примере, где простые значения, но прога запинается на объявлении xj - фик знает почему.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение двух списков zener Prolog 4 28.10.2010 15:40
Сравнение массивов kdinisv PHP 2 01.11.2009 20:15
Сравнение двух слов videomag Prolog 4 13.04.2009 16:55
Быстрый Алгоритм сравнения двух массивов AcerExtensa С/С++ 6 21.07.2008 11:38
Создание двух динамических массивов qqeeaaddzzcc С/С++ 6 23.05.2008 17:27
Объединение двух массивов Horror Алгоритмы 6 27.11.2007 18:01
Сравнение двух слов @komissar@ Prolog 5 13.06.2006 05:52
Конкатенация двух численных массивов Amputator Pascal 4 16.04.2006 20:01
TFileStream создание двух динамических массивов Ал-леша C++ Builder 3 01.06.2005 10:38
Несовместимость указателей двух- и одномерных массивов EiTRoN С/С++ 18 03.06.2004 13:26
Сравнение двух файлов Nato С/С++ 4 27.03.2004 23:52
Сравнение двух файлов north_crow C++ Builder 6 22.02.2003 12:25



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов