Проблема с циклами (как мне кажется :)

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
NP
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 23.01.2004 (Пт) 21:58

Проблема с циклами (как мне кажется :)

Сообщение NP » 24.01.2004 (Сб) 16:10

Люди, помогите чайнику, плз!
Пишу макрос для EXcel, но он не работает. Подозреваю, что это из-за неправильного написания цикла, но как правильно это сделать пока не имею представления :)
Макрос запускается, но ничего не делает, при этом он не выдает никаких сообщений об ошибках.
Public knp As Integer
Public Sub CommandButton1_Click()
Dim i
Dim n As Integer
Dim a
Dim b
Dim kolvo_nepustih As Integer
Dim kolvo_nepustih2 As Integer
Dim kolvo_nepustih3 As Integer
Dim key As Integer
Dim m As Integer
Dim l As Integer
Dim o As Integer
n = 1
m = 1
l = 1
o = 1
'Определяем количество непустых ячеек в листе
For i = 1 To 50000
If Sheets("Новый прайс").Cells(n, 7) = vbNullString Then
knp = n
Exit For
End If
n = n + 1
Next i
otvet.Caption = knp
'Закончили определять количество непустых ячеек

'Начинаем Поиск совпадений ключа с листом "База". Если ячейка с ключом есть в базе, то проверить, не изменились ли значения в некоторых ячейках строки по сравнению с тем, что есть в листе "Опубликовано на сайте". Если изменения есть, перенести значения из листов "База" и "Новый прайс" на лист "Опубликовать", если нет - внести запись в лист "Протокол". Если записи нет, внести данные из листа "Новый прайс" в лист "Новые поступления!"
For i = 1 To hnp
key = Sheets("Новый прайс").Cells(m, 7)
For a = 1 To 50000
If key = Sheets("База").Cells(l, 16) Then
For b = 1 To 50000
If key = Sheets("Опубликован на сайте").Cells(o, 16) And Sheets("Опубликован на сайте").Cells(o, 1) = Sheets("Новый прайс").Cells(m, 4) And Sheets("Опубликован на сайте").Cells(o, 11) = Sheets("Новый прайс").Cells(m, 14) Then
'kolvo_nepustih = Sheets("Протокол").Cells.[a1].CurrentRegion.Rows.Count + 1
Sheets("Протокол").Cells(kolvo_nepustih, 1) = key
Sheets("Протокол").Cells(kolvo_nepustih, 2) = "Без изменений"
Else: kolvo_nepustih2 = Sheets("Опубликовать").Cells.[a1].CurrentRegion.Rows.Count + 1
Sheets("Опубликовать").Cells(kolvo_nepustih2, 1) = "update"
Sheets("Опубликовать").Cells(kolvo_nepustih2, 2) = Sheets("Новый прайс").Cells(m, 4)
Sheets("Опубликовать").Cells(kolvo_nepustih2, 3) = Sheets("База").Cells(l, 2)
Sheets("Опубликовать").Cells(kolvo_nepustih2, 4) = Sheets("База").Cells(l, 3)
Sheets("Опубликовать").Cells(kolvo_nepustih2, 5) = Sheets("База").Cells(l, 4)
Sheets("Опубликовать").Cells(kolvo_nepustih2, 6) = Sheets("База").Cells(l, 5)
Sheets("Опубликовать").Cells(kolvo_nepustih2, 7) = Sheets("База").Cells(l, 6)
Sheets("Опубликовать").Cells(kolvo_nepustih2, 8) = Sheets("База").Cells(l, 7)
Sheets("Опубликовать").Cells(kolvo_nepustih2, 9) = Sheets("База").Cells(l, 8)
Sheets("Опубликовать").Cells(kolvo_nepustih2, 10) = Sheets("База").Cells(l, 9)
Sheets("Опубликовать").Cells(kolvo_nepustih2, 11) = Sheets("База").Cells(l, 10)
Sheets("Опубликовать").Cells(kolvo_nepustih2, 12) = Sheets("Новый прайс").Cells(m, 14)
Sheets("Опубликовать").Cells(kolvo_nepustih2, 13) = Sheets("База").Cells(l, 12)
Sheets("Опубликовать").Cells(kolvo_nepustih2, 14) = Sheets("База").Cells(l, 13)
Sheets("Опубликовать").Cells(kolvo_nepustih2, 15) = Sheets("База").Cells(l, 14)
Sheets("Опубликовать").Cells(kolvo_nepustih2, 16) = Sheets("База").Cells(l, 15)
Sheets("Опубликовать").Cells(kolvo_nepustih2, 17) = Sheets("База").Cells(l, 16)
Sheets("Опубликовать").Cells(kolvo_nepustih2, 18) = Sheets("База").Cells(l, 17)
Sheets("Опубликовать").Cells(kolvo_nepustih2, 19) = Sheets("База").Cells(l, 18)
Sheets("Опубликовать").Cells(kolvo_nepustih2, 20) = Sheets("База").Cells(l, 19)
Exit For
End If
o = o + 1
Next b
Else: 'kolvo_nepustih3 = Sheets("Новые поступления").Cells.[a1].CurrentRegion.Rows.Count + 1
Sheets("Новые поступления!").Cells(kolvo_nepustih3, 1) = "insert"
Sheets("Новые поступления!").Cells(kolvo_nepustih3, 2) = Sheets("Новый прайс").Cells(m, 4)
'Надо дописать
Exit For
End If
l = l + 1
Next a
Exit For
l = l + 1
Next i
end sub

NP
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 23.01.2004 (Пт) 21:58

без смайликов

Сообщение NP » 24.01.2004 (Сб) 16:11

Код: Выделить всё
Public knp As Integer
Public Sub CommandButton1_Click()
Dim i
Dim n As Integer
Dim a
Dim b
Dim kolvo_nepustih As Integer
Dim kolvo_nepustih2 As Integer
Dim kolvo_nepustih3 As Integer
Dim key As Integer
Dim m As Integer
Dim l As Integer
Dim o As Integer
n = 1
m = 1
l = 1
o = 1
'Определяем количество непустых ячеек в листе
For i = 1 To 50000
If Sheets("Новый прайс").Cells(n, 7) = vbNullString Then
knp = n
Exit For
End If
n = n + 1
Next i
otvet.Caption = knp
'Закончили определять количество непустых ячеек

'Начинаем Поиск совпадений ключа с листом "База". Если ячейка с ключом есть в базе, то проверить, не изменились ли значения в некоторых ячейках строки по сравнению с тем, что есть в листе "Опубликовано на сайте". Если изменения есть, перенести значения из листов "База" и "Новый прайс" на лист "Опубликовать", если нет - внести запись в лист "Протокол". Если записи нет, внести данные из листа "Новый прайс" в лист "Новые поступления!"
For i = 1 To hnp
key = Sheets("Новый прайс").Cells(m, 7)
    For a = 1 To 50000
    If key = Sheets("База").Cells(l, 16) Then
        For b = 1 To 50000
        If key = Sheets("Опубликован на сайте").Cells(o, 16) And Sheets("Опубликован на сайте").Cells(o, 1) = Sheets("Новый прайс").Cells(m, 4) And Sheets("Опубликован на сайте").Cells(o, 11) = Sheets("Новый прайс").Cells(m, 14) Then
        'kolvo_nepustih = Sheets("Протокол").Cells.[a1].CurrentRegion.Rows.Count + 1
        Sheets("Протокол").Cells(kolvo_nepustih, 1) = key
        Sheets("Протокол").Cells(kolvo_nepustih, 2) = "Без изменений"
        Else: kolvo_nepustih2 = Sheets("Опубликовать").Cells.[a1].CurrentRegion.Rows.Count + 1
        Sheets("Опубликовать").Cells(kolvo_nepustih2, 1) = "update"
        Sheets("Опубликовать").Cells(kolvo_nepustih2, 2) = Sheets("Новый прайс").Cells(m, 4)
        Sheets("Опубликовать").Cells(kolvo_nepustih2, 3) = Sheets("База").Cells(l, 2)
        Sheets("Опубликовать").Cells(kolvo_nepustih2, 4) = Sheets("База").Cells(l, 3)
        Sheets("Опубликовать").Cells(kolvo_nepustih2, 5) = Sheets("База").Cells(l, 4)
        Sheets("Опубликовать").Cells(kolvo_nepustih2, 6) = Sheets("База").Cells(l, 5)
        Sheets("Опубликовать").Cells(kolvo_nepustih2, 7) = Sheets("База").Cells(l, 6)
        Sheets("Опубликовать").Cells(kolvo_nepustih2, 8) = Sheets("База").Cells(l, 7)
        Sheets("Опубликовать").Cells(kolvo_nepustih2, 9) = Sheets("База").Cells(l, 8)
        Sheets("Опубликовать").Cells(kolvo_nepustih2, 10) = Sheets("База").Cells(l, 9)
        Sheets("Опубликовать").Cells(kolvo_nepustih2, 11) = Sheets("База").Cells(l, 10)
        Sheets("Опубликовать").Cells(kolvo_nepustih2, 12) = Sheets("Новый прайс").Cells(m, 14)
        Sheets("Опубликовать").Cells(kolvo_nepustih2, 13) = Sheets("База").Cells(l, 12)
        Sheets("Опубликовать").Cells(kolvo_nepustih2, 14) = Sheets("База").Cells(l, 13)
        Sheets("Опубликовать").Cells(kolvo_nepustih2, 15) = Sheets("База").Cells(l, 14)
        Sheets("Опубликовать").Cells(kolvo_nepustih2, 16) = Sheets("База").Cells(l, 15)
        Sheets("Опубликовать").Cells(kolvo_nepustih2, 17) = Sheets("База").Cells(l, 16)
        Sheets("Опубликовать").Cells(kolvo_nepustih2, 18) = Sheets("База").Cells(l, 17)
        Sheets("Опубликовать").Cells(kolvo_nepustih2, 19) = Sheets("База").Cells(l, 18)
        Sheets("Опубликовать").Cells(kolvo_nepustih2, 20) = Sheets("База").Cells(l, 19)
        Exit For
        End If
        o = o + 1
        Next b
    Else: 'kolvo_nepustih3 = Sheets("Новые поступления").Cells.[a1].CurrentRegion.Rows.Count + 1
    Sheets("Новые поступления!").Cells(kolvo_nepustih3, 1) = "insert"
    Sheets("Новые поступления!").Cells(kolvo_nepustih3, 2) = Sheets("Новый прайс").Cells(m, 4)
    'Надо дописать
    Exit For
    End If
    l = l + 1
    Next a
Exit For
l = l + 1
Next i

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 25.01.2004 (Вс) 7:55

Ох, чел, нельзя же так...
Переменная в заголовке цикла как раз и приращивается им. Зачем заводить ещё одну и вручную её приращивать? Плюс ко всему, у тебя так организована проверка условий, что в любом случае для любой записи такая куча фигни будет происходить...
Так, я ничего не тестировал, но по идее должно работать...
Код: Выделить всё
Public knp As Long

Public Sub CommandButton1_Click()
  Dim i As Long, key As Long, tmpRange As Excel.Range
 
  'Определяем количество непустых ячеек в листе
  knp = WorksheetFunction.CountA(Worksheets("Новый прайс").Columns(7))
  otvet.Caption = knp
  'Закончили определять количество непустых ячеек
 
 
  'Начинаем Поиск совпадений ключа с листом "База".
 
  'Если ячейка с ключом есть в базе, то проверить, не изменились ли значения
  'в некоторых ячейках строки по сравнению с тем, что есть в листе
  '"Опубликовано на сайте". Если изменения есть, перенести значения
  'из листов "База" и "Новый прайс" на лист "Опубликовать", если нет -
  'внести запись в лист "Протокол".
 
  'Если записи нет, внести данные из листа "Новый прайс" в лист "Новые поступления!"
  For i = 1 To knp
    key = Worksheets("Новый прайс").Cells(i, 7).Value
    Set tmpRange = Worksheets("База").Columns(16).Find(key, , xlValues)
    If tmpRange Is Nothing Then  'нет ключа в базе
      With Worksheets("Новые поступления").Rows(Worksheets("Новые поступления").Cells(1, 1).CurrentRegion.Rows.Count + 1)
        .Cells(1) = "insert"
        .Cells(2) = Worksheets("Новый прайс").Cells(i, 4)
        'Ну так дописывай, раз надо
      End With
    Else                         'есть ключ в базе
      'Как я понял, в "Опубликован на сайте" всегда есть ключ из "Базы"
      'Поэтому проверки на существование не проводим.
      With Worksheets("Опубликован на сайте").Rows(Worksheets("Опубликован на сайте").Columns(16).Find(key, , xlValues).Row)
        If .Cells(1) = Worksheets("Новый прайс").Cells(i, 4) And .Cells(11) = Worksheets("Новый прайс").Cells(i, 14) Then
          'нет изменений
          With Worksheets("Протокол").Rows(Worksheets("Протокол").Cells(1, 1).CurrentRegion.Rows.Count + 1)
            .Cells(1) = key
            .Cells(2) = "Без изменений"
          End With
        Else
          'есть изменения
          With Worksheets("Опубликовать").Rows(Worksheets("Опубликовать").Cells(1, 1).CurrentRegion.Rows.Count + 1)
            tmpRange.EntireRow.Copy .Cells(2)
            .Cells(1) = "update"
            .Cells(2) = Worksheets("Новый прайс").Cells(i, 4)
            .Cells(12) = Worksheets("Новый прайс").Cells(i, 14)
          End With
        End If
      End With
    End If
  Next
End Sub
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 25.01.2004 (Вс) 11:19

Да, совсем забыл.
Сравни эти две строчки своего кода. А потом читай хэлп на предмет Option Explicit.
Код: Выделить всё
Public knp As Integer

Код: Выделить всё
For i = 1 To hnp
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

NP
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 23.01.2004 (Пт) 21:58

Сообщение NP » 25.01.2004 (Вс) 22:39

Большое спасибо за ответ!
Только вот все равно не без глючков. :(
Макрос запускается, но помещает в лист "Новые поступления" все позиции из листа "Новый прайс", даже если они присутствуют в прайсе (проверено экспериментально путем вызова окошка ctrl+F)
Содержимое колонки 16 листа база и колонки 7 Нового прайса состоит полностью из цифр. Например: 930419901.
Т.к. эти колонки имеют не полную ширину, excel присваивает им вид 9,2E+08 и т.п.
В макросе идет поиск по значениям xlValues (насколько я понял). Подставил xlFormulas - результат тот же.
Если развигаешь эти колонки (16 и 7), выдается ошибка 91 (Object variable or with clock variable not set) и подсвечивается вот эта строка:
With Worksheets("Опубликован на сайте").Rows(Worksheets("Опубликован на сайте").Columns(16).Find(key, , xlValues).Row)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 26.01.2004 (Пн) 9:16

Так...
Проверь, не стоит ли в параметрах "Точность как на экране", если стоит, убери.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

NP
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 23.01.2004 (Пт) 21:58

Сообщение NP » 26.01.2004 (Пн) 16:13

Нет, галочка не стоит...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 26.01.2004 (Пн) 16:19

Ааа... Ну да, эта длинная цифирь не помещается в Long :)
Замени в объявлении key long на variant.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

NP
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 23.01.2004 (Пт) 21:58

Сообщение NP » 27.01.2004 (Вт) 0:01

Заменил, но выдается та же ошибка и подчеркивается та же строка:
With Worksheets("Опубликован на сайте").Rows(Worksheets("Опубликован на сайте").Columns(16).Find(key, , xlValues).Row)
Для меня самого загадка, в чем это дело...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.01.2004 (Вт) 10:30

Это значит, что Find возвращает Nothing. А это значит, что key не найден в столбце 16 листа "Опубликован на сайте".
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

NP
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 23.01.2004 (Пт) 21:58

Сообщение NP » 27.01.2004 (Вт) 11:36

Да, действительно :)
Однако опять не без глюков :)
Макрос выдает ошибку 1004:
Данные не могут быть вставлены из-за несоответствия формы и размера области копирования и области вставки.
И подсвечиватся вторая строка следующего кода:
Код: Выделить всё
With Worksheets("Опубликовать").Rows(Worksheets("Опубликовать").Cells(1, 1).CurrentRegion.Rows.Count + 1)
tmpRange.EntireRow.Copy .Cells(2)
.Cells(1) = "update"
.Cells(2) = Worksheets("Новый прайс").Cells(i, 4)
.Cells(12) = Worksheets("Новый прайс").Cells(i, 14)

NP
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 23.01.2004 (Пт) 21:58

Сообщение NP » 27.01.2004 (Вт) 12:30

Да, и еще. Вот код:
Код: Выделить всё
'есть изменения
          With Worksheets("Опубликовать").Rows(Worksheets("Опубликовать").Cells(1, 1).CurrentRegion.Rows.Count + 1)
            tmpRange.EntireRow.Copy .Cells(2)
            .Cells(1) = "update"
            .Cells(2) = Worksheets("Новый прайс").Cells(i, 4)
            .Cells(12) = Worksheets("Новый прайс").Cells(i, 15)
End With

В листе "Новый прайс" нет некоторых ячеек, которые есть на листе база.
Мне надо эти ячейки скопировать на лист "Опубликовать"
Если использовть .Cells(3) = Worksheets("Опубликован на сайте").Cells(), то что писать в скобках cells? Как правильно указать номер строки?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.01.2004 (Ср) 10:16

Вот гад этот эксель, нет чтобы догадаться обрезать последнуюю ячейку копируемой строки :) Ладно. Оба последних вопроса решаются одним ответом, ибо строка tmpRange.EntireRow.Copy .Cells(2) как раз и занимается копированием всех ячеек с "Базы" в соотв. места "Опубликовать". А чтобы она заработала... Ну хотя бы так:
Код: Выделить всё
range(tmprange.entirerow.cells(2), tmprange.entirerow.cells(19)).copy .cells(2)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

NP
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 23.01.2004 (Пт) 21:58

Сообщение NP » 28.01.2004 (Ср) 16:07

Все работает!
Большое спасибо!
И еще вопросик.
В ячейки есть текст типа
Код: Выделить всё
"Эта книга - своего рода свод законов жизни, выраженных в форме метких и остроумных афоризмов. Работа и отдых, любовь и брак, наука и религия, бизнес и творчество, политика и домашнее хозяйство, здоровье и мода...
Зная эти 4048 ""законов жизни"", можно не просто выжить, но и попробовать прожить жизнь с удовольствием и улыбкой. "

А как сделать так, чтобы вместо переноса строки стоял html-тег <BR>? Таким образом, содержимое ячейки должно выглядеть так:
Код: Выделить всё
"Эта книга - своего рода свод законов жизни, выраженных в форме метких и остроумных афоризмов. Работа и отдых, любовь и брак, наука и религия, бизнес и творчество, политика и домашнее хозяйство, здоровье и мода...<BR>Зная эти 4048 ""законов жизни"", можно не просто выжить, но и попробовать прожить жизнь с удовольствием и улыбкой. "

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 29.01.2004 (Чт) 10:28

Если Офис >=2000, то там есть функция Replace. Добавляем в нужные места кода выражения типа Cell(такая-то).Value = Replace(cell(она же).value, vbCrLf, "<BR>"). Если не прокатит, можно вместо vbCrLf попробовать vbCr или vbLf.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

NP
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 23.01.2004 (Пт) 21:58

Сообщение NP » 30.01.2004 (Пт) 22:18

Спасибо! Заменил.
Вот еще вопрос из той же области. Как в VB обозначаются кавычки (") и как правильно их заменить на тег html &
Вариант с заменой путем стандартного окна "найти и заменить" не подходит - эксель пишет, что слишком сложна формула.

NP
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 23.01.2004 (Пт) 21:58

Сообщение NP » 30.01.2004 (Пт) 22:24

На это слово надо заменить кавычки. ФОрум запрещает html

Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.01.2004 (Сб) 9:56

Одинарная кавычка - """" :lol:
Или Chr$(34), кому что удобнее. Точно так же, в Replace её.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

NP
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 23.01.2004 (Пт) 21:58

Сообщение NP » 31.01.2004 (Сб) 13:28

А как тогда в replace записать вот это буквосочетание, чтобы ексель и ВБ не вопил?
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.01.2004 (Сб) 15:11

replace(where, """", "&квот;")
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

NP
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 23.01.2004 (Пт) 21:58

Сообщение NP » 12.02.2004 (Чт) 19:38

А вот интересно, как вывести текущую обрабатываемую ячейку или процент работы. База большая. Жду более 5 часов, когда завершится работа, знать хотя бы когда это все закончится... :)

NP
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 23.01.2004 (Пт) 21:58

Сообщение NP » 12.02.2004 (Чт) 20:28

Уже не надо. Сделал.
Пытался засунуть в caption, но результат выдается только после завершения работы.
Я вставил в ячейку :) Теперь у меня отображается и текущая обрабатываемая строка, и процентное соотношение :)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

    TopList