Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 03.05.2015
Сообщений: 2
1

Сравнение массивов - Ошибка Method 'Range' of 'object' Global Failed

03.05.2015, 21:09. Показов 1592. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, в Vba новичок, погуглил, не могу понять в чем ошибка. Есть два массива А1:АХХ на одном листе и А1:АХХ на другом, пытаюсь их сравнить. Данный код выдает ошибку: Ошибка Method 'Range' of 'object' Global Failed
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Sub array_1()
 
 Dim lLastRowA As Long
 Dim ArrayA() As Variant
 Dim lLastRowB As Long
 Dim ArrB() As Variant
 
  lLastRowA = Cells(Rows.Count, "A").End(xlUp).Row
  lLastRowB = Worksheets("Лист2").Cells(Rows.Count, "A").End(xlUp).Row
  
 ArrayA = Range("A1:A & lLastRowA").Value
 ArrayB = Worksheets("Лист2").Range("A1:A & lLastRowB").Value
  
         For i = 1 To UBound(ArrayA)
         For ii = 1 To UBound(ArrayB)
         If ArrayA(i, 1) = ArrayB(ii, 1) Then
         MsgBox "Ok", vbInformation
         Exit For
         End If
         Next ii, i
   
End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2015, 21:09
Ответы с готовыми решениями:

Ошибка Method Range of Object Global failed
Помогите найти ошибку. Пишет Method Range of Object Global failed и указывает на первую строчку....

Ошибка Method 'Range' of 'object' Global Failed
помогите пожалуйста разобраться с возникшей ошибкой (Снимок.png) Код: Sub Sales() Dim i As...

Ошибка method range of object global failed в чем ошибка
Sub ПроверкаВвода() Dim A As Range Dim B As Range ...

Ошибка method range of object _global failed
Dim AAAC As Long Dim strSuchen As Variant Private Sub ComboBox1_Change() If ComboBox1.Value <>...

3
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
03.05.2015, 21:21 2
Для начала
11 ArrayA = Range("A1:A" & lLastRowA).Value

Почему Exit For при первом успешном сравнении? Надо при неуспешном.
И почему 2 вложенных цикла - Вы каждый с каждым элементы хотите сравнить?
0
0 / 0 / 0
Регистрация: 03.05.2015
Сообщений: 2
03.05.2015, 22:06  [ТС] 3
Спасибо, поправил, заработало. Цель была найти такое же значение и приступить к поиску другого. Только теперь не могу разобраться, как вывести найденный элемент массива на лист...

Вот еще интересный алгоритм, может подскажете как подтянуть данные со второго листа, которые соотвествуют найденному значению.

Visual Basic
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
Sub Procedure_1()
 
    Dim lLastRowA As Long
    Dim lLastRowC As Long
    Dim i As Long
    Dim rFind As Excel.Range
    
    lLastRowA = Cells(Rows.Count, "A").End(xlUp).Row
    lLastRowC = Cells(Rows.Count, "C").End(xlUp).Row
       Application.ScreenUpdating = False    
    For i = 2 To lLastRowA Step 1
              Set rFind = Worksheets("Лист2").Columns("A").Find(What:=Cells(i, "A").Text, LookIn:=xlValues, _
            LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
            MatchCase:=False, SearchFormat:=False)
         
             If Not rFind Is Nothing Then
              Worksheets("Лист3").Cells(lLastRowC, "A").Value = Cells(i, "A").Value
              Worksheets("Лист3").Cells(lLastRowC, "B").Value = Cells(i, "B").Value
               
            lLastRowC = lLastRowC + 1
        End If
            
    Next i
    Application.ScreenUpdating = True
    
End Sub
0
466 / 123 / 61
Регистрация: 04.03.2015
Сообщений: 325
03.05.2015, 22:25 4
Цитата Сообщение от spellbound Посмотреть сообщение
как вывести найденный элемент массива на лист
Добавьте после If внутри цикла.
Visual Basic
1
Sheets("Тут название листа на который выводите").Range("Тут адрес ячейки в которую выводите").Value = ArrayA(i, 1)
0
03.05.2015, 22:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.05.2015, 22:25
Помогаю со студенческими работами здесь

Ошибка method range of object _global failed
Sub Ìàêñðîñ2() Z = InputBox("âûáðàòü íîìåð ìåñÿöà") mounth = 1 + Z Max = 0 For q = 2 To k +...

Method 'Range' of object '_worksheet' failed
Доброе утро. Помогите разобраться, не пойму откуда руки растут у моей проблемы. Есть excel, в...

"Method range of object _worksheet failed" при обращении на другой лист
Добрый день. Есть куча именованных диапазонов, названия которых складываются в выпадающий список...

Ошибка "runtime error 1004 method range of object global failed"
Ошибка "runtime error 1004 method range of object global failed" при вызове формы. ' Инвестиции...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru