Visual Basic for Applications. Практика. Нагина Е.К - 24 стр.

UptoLike

Составители: 

24
‘ List3 – клиенты, покупавшие товар в обоих _ городах
(создается)
Dim I As Integer, j As Integer
Dim LS1 As Integer, LS2 As Integer, List1() _
As String, List2() As String
Dim LS3 As Integer, Index1 As Integer, Index2 _
As Integer, Name1 As String, Name2 As _
String, List3() As String
Удаление старого объединенного списка в столбце D
With Range(“D3”)
Range(.Offset(1, 0), _
.Offset(1, 0).End(xlDown)).ClearContents
End With
Получение размеров списков и их элементов в _
столбцах А и B
With Range(“A3”)
LS1 = Range(.Offset(1, 0), .End(xlDown)) _
.Rows .Count
ReDim List1 (LS1)
For i = 1 To LS1
List1(i) = .Offset(i, 0)
Next i
LS2 = Range(.Offset(1, 1), .Offset(0, 1) _
.End(xlDown)) .Rows .Count
ReDim List2(LS2)
For i = 1 To LS2
List2(i) = .Offset(i, 1)
Next i
End With
Создание объединенного списка
Размер объединенного списка = 0: LS3 = 0
Одновременный просмотр списков List1 и List2
Переменные Index1 и Index2 указывают текущее
положение в списках. Переменные Name1 и
‘ Name2 содержат имена текущих клиентов
Index1 = 1
Index2 = 1
Просмотр до конца одного из списков
Do While Index1 <= LS1 And Index2 <= LS2
Name1 = List1(Index1)
Name2 = List2(Index2)
Каждый шаг добавляет в объединенный список
определенный элемент, поэтому приходится
обновлять размер списка и массива List3
‘ List3 – клиенты, покупавшие товар в обоих _ городах
(создается)
   Dim I As Integer, j As Integer
   Dim LS1 As Integer, LS2 As Integer, List1() _
    As String, List2() As String
   Dim LS3 As Integer, Index1 As Integer, Index2 _
    As Integer, Name1 As String, Name2 As _
    String, List3() As String
‘Удаление старого объединенного списка в столбце D
   With Range(“D3”)
      Range(.Offset(1, 0), _
      .Offset(1, 0).End(xlDown)).ClearContents
   End With
‘ Получение размеров списков и их элементов в _
‘ столбцах А и B
   With Range(“A3”)
      LS1 = Range(.Offset(1, 0), .End(xlDown)) _
            .Rows .Count
      ReDim List1 (LS1)
      For i = 1 To LS1
         List1(i) = .Offset(i, 0)
      Next i
      LS2 = Range(.Offset(1, 1), .Offset(0, 1) _
            .End(xlDown)) .Rows .Count
      ReDim List2(LS2)
      For i = 1 To LS2
         List2(i) = .Offset(i, 1)
      Next i
   End With
‘ Создание объединенного списка
‘ Размер объединенного списка = 0: LS3 = 0
 ‘ Одновременный просмотр списков List1 и List2
‘ Переменные Index1 и Index2 указывают текущее
‘ положение в списках. Переменные Name1 и
‘ Name2 содержат имена текущих клиентов
   Index1 = 1
   Index2 = 1
‘ Просмотр до конца одного из списков
   Do While Index1 <= LS1 And Index2 <= LS2
      Name1 = List1(Index1)
      Name2 = List2(Index2)
‘ Каждый шаг добавляет в объединенный список
‘ определенный элемент, поэтому приходится
‘ обновлять размер списка и массива List3
                          24