powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Есть ли возможность сравнить одномерных 2 массива?
9 сообщений из 9, страница 1 из 1
Есть ли возможность сравнить одномерных 2 массива?
    #39511690
Takayavot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня!
Есть следующая задача. Сравнить названия и кол-во листов 1й и 2й книги.
Названия и кол-во должны совпадать. Порядок расположения – необязательно.
Планирую создать 2 массива и заполнить их именами страниц каждой книги.

Вопрос. Можно в VBA как-то сравнить массивы? Особенно, если порядок элементов будет разный?
Может вначале как-то упорядочить можно элементы внутри массива?
Не работала ни разу с массивами, поэтому не знаю, можно ли.

Могу, конечно, тупо вывести все в excel и сравнить vlookup-ом, но хотелось бы код покороче.
Спасибо.
...
Рейтинг: 0 / 0
Есть ли возможность сравнить одномерных 2 массива?
    #39511696
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TakayavotПланирую создать 2 массива и заполнить их именами страниц каждой книги.Лучше Collection. Или Scripting.Dictionary.
...
Рейтинг: 0 / 0
Есть ли возможность сравнить одномерных 2 массива?
    #39511700
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Takayavot,

dictionary + .exists
...
Рейтинг: 0 / 0
Есть ли возможность сравнить одномерных 2 массива?
    #39511743
Takayavot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
big-dukeTakayavot,

dictionary + .exists
Почитала, но не совсем поняла.
Допустим я создам два словаря, ключом будет название листа, item – индекс листа.
А как их дальше сравнить?
...
Рейтинг: 0 / 0
Есть ли возможность сравнить одномерных 2 массива?
    #39511776
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итерация по первой коллекции, для каждого элемента проверка второй коллекции на существование Key, а при наличии - сравнение Item. Собсно...
...
Рейтинг: 0 / 0
Есть ли возможность сравнить одномерных 2 массива?
    #39511777
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя нет, Item сравнивать не требуется...
...
Рейтинг: 0 / 0
Есть ли возможность сравнить одномерных 2 массива?
    #39511783
Takayavot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

по item проверять вроде бы не нужно - порядок листов может быть разным. Главное, чтобы ключи совпали

Вот такой код написала. Но в последнем цикле ругается на слово key. Что не так?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
Sub dic()

Set WB1 = Workbooks("CSAT INT Global July 2017.xlsx")

Dim key As String, item As Integer
Set WS1DIC = CreateObject("Scripting.Dictionary")
WB1.Activate
For Each ws In Worksheets
      key = ws.Name
      item = ws.Index
      WS1DIC.Add key, item
Next ws


Set WB2 = Workbooks("CSAT INT Global June 2017.xlsx")
Set WS2DIC = CreateObject("Scripting.Dictionary")
WB2.Activate
For Each ws In Worksheets
      key = ws.Name
      item = ws.Index
      WS2DIC.Add key, item
Next ws


If WS2DIC.Count = WS1DIC.Count Then
MsgBox "кол-во листов одинаковое"
Else
MsgBox "кол-во листов разное"

End If



For Each key In WS1DIC.Keys
If WS2DIC.Exists(key) Then
K = K + 1
Next key
If K = WS1DIC.Count Then
MsgBox "названия листов совпадают"
Else
MsgBox "названия листов не совпадают"
End If


End Sub
...
Рейтинг: 0 / 0
Есть ли возможность сравнить одномерных 2 массива?
    #39512097
3й564413
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TakayavotВот такой код написала. Но в последнем цикле ругается на слово key. Что не так?В сообщении об ошибке предельно предметно написано, что не так:Microsoft Visual BasicCompile error:

For Each control variable must be Variant or Object
...
Рейтинг: 0 / 0
Есть ли возможность сравнить одномерных 2 массива?
    #39512258
Takayavot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
3й564413,

Спасибо!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Есть ли возможность сравнить одномерных 2 массива?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]