Здравствуйте! Помогите, пожалуйста, с решением следующей проблемы: Дано: Книга "ArrayTest.xls" с 2-мя листами: "Список" и "Сводная". Лист "Список" содержит перемешанные названия месяцев, дней недели и числа (от 1 до 10). Задача: Перенести в лист "Сводная" все данные, НЕ удовлетворяющие условиям, перечисленным в массиве. В данном случае массив содержит дни недели. Т.о. в лист "Сводная" должно попасть всё, кроме дней недели. Обратная задача (с переносом только дней недели) решается...а вышеупомянутая не дает ожидаемого результата. Привожу свой код, подскажите, пожалуйста, в чем ошибка и почему обратная задача работает (...If IndexCell.Value = MyArray(Ai) Then....)?
Код
Sub GetMonthsFromList()
Dim Svod As Object
Dim IndexCell As Range
Dim i As Integer
Dim MyArray() As Variant
Dim Ai As Variant
Set Svod = ThisWorkbook.Sheets("Сводная")
MyArray = Array("Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Воскресенье")
ThisWorkbook.Sheets(1).Activate
i = 1
For Each IndexCell In Range("A1:A29")
For Ai = 0 To 6
If IndexCell.Value <> MyArray(Ai) Then
Svod.Cells(i, 1).Value = IndexCell.Value
i = i + 1
End If
Next Ai
Next IndexCell
Erase MyArray
End Sub
Данная задача умышлено примитивизирована для акцента на вопросе об использовании массива именно таким способом. На деле, огромное кол-во книг и листов с информацией инженерно-технического характера, спецификаций и пр... На стороннем форуме сторожила дал хороший совет (спасибо ему) использовать словарь (этот вопрос я уже начал изучать). Но, неужели нельзя обойтись "родным" массивом, не используя подключения к библиотекам.