Копирование строки в Excell

Программирование на Visual Basic for Applications
YALO_K
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 23.12.2007 (Вс) 19:14

Копирование строки в Excell

Сообщение YALO_K » 23.12.2007 (Вс) 19:33

Подскажите пожалуйста!!!!!!!!

При вводе текста в Texbox происходит поиск этого текста в таблице, расположенной на Листе2 в Excell. Когда программа находит этот текст, копируется вся строка соответствующей ячеки в таблицу на Лист3. Как сделать так, чтобы при следующем поиске текста запись происходила не на место уже записанных, а в следующую строку расположенную ниже последней строки.
Заранее спасибо!!

Это код программы:

Dim pred As String
Dim i, j, k, p, w As Integer

Private Sub CommandButton1_Click()
pred = TextBox1.Text
Worksheets("Лист2").Activate
k = 1
p = 1
For i = 1 To 6

If UCase(Trim(pred)) = UCase(Trim(Worksheets("Лист2").Cells(i, 2))) Then
k = k + 1
p = 1
For j = 1 To 16
Worksheets("Лист3").Cells(k, p) = Worksheets("Лист2").Cells(i, j)
p = p + 1
Next j
End If
Next i
w = k
End Sub

Pavel55
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 27.10.2006 (Пт) 20:11

Сообщение Pavel55 » 23.12.2007 (Вс) 23:48

Попробуйте так

Код: Выделить всё
Dim pred As String
Dim i As Integer, j As Integer, k As Integer, p As Integer, w As Integer
Dim iLastRow As Long

Private Sub CommandButton1_Click()
    pred = TextBox1.Text
    Worksheets("Лист2").Activate
    k = 1
    p = 1
    For i = 1 To 6
        If UCase(Trim(pred)) = UCase(Trim(Worksheets("Лист2").Cells(i, 2))) Then
            k = k + 1
            p = 1
            For j = 1 To 16
                iLastRow = Sheets("Лист3").Range("A65536").End(xlUp).Row
                Worksheets("Лист3").Cells(iLastRow, p) = Worksheets("Лист2").Cells(i, j)
                p = p + 1
            Next j
        End If
    Next i
    w = k
End Sub


P.S. Неправильно объявлять переменные таким образом
Код: Выделить всё
Dim i, j, k, p, w As Integer

У вас только переменная w будет иметь тип Integer, а переменные i, j, k, p будут иметь тип Variant. Правильно объявлять так
Код: Выделить всё
Dim i As Integer, j As Integer, k As Integer, p As Integer, w As Integer

P.P.S. Пожалуйста, когда выкладываете свой код на форуме, выделите его мышкой и нажмите кнопку Code, находящуюся над окном, в котором вы пишите сообщение. Тогда ваш код будет оформлен как код, а не как обычный текст и его будет легче читать нам.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 24.12.2007 (Пн) 2:47

Pavel55
Респект :!:
Вот как надо новичков встречать!

[offtop]...Дайте парню статус "Антишаман" :) [/offtop]
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

YALO_K
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 23.12.2007 (Вс) 19:14

Сообщение YALO_K » 24.12.2007 (Пн) 16:10

Спасибо!!

Pavel55
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 27.10.2006 (Пт) 20:11

Сообщение Pavel55 » 24.12.2007 (Пн) 16:26

Не за что)


Вернуться в VBA

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

Сейчас этот форум просматривают: Google-бот и гости: 101

    TopList