Доброго времени суток, я столкнулся с проблемой написании кода, который будет сравнивать два столбца с данными на разных листах(номер столбца, указывает пользователь, вернее его букву), и вот что у меня получилось, вернее не получилось, данные в ячейке значения не имеют
[vba]
Код
Private Sub CommandButton1_Click() Dim lLastRowA As Long Dim lLastRowC As Long Dim i As Long Dim rFind As Excel.Range lLastRowA = Лист1.Cells(Rows.Count, TextBox1.Text).End(xlUp).Row lLastRowC = Лист3.Cells(Rows.Count, "C").End(xlUp).Row + 1 Application.ScreenUpdating = False For i = 2 To lLastRowA Step 1 'и вот тут у меня начинается ошибка, с указанием столбца второго листа, т.е. с чем будет сравниваться Set rFind = Columns(Лист1.TextBox2.Text).Find(What:=Cells(i, TextBox1.Text).Text, LookIn:=xlValues, _ LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False) If Not rFind Is Nothing Then Cells(lLastRowC, "C").Value = Cells(i, "A").Value lLastRowC = lLastRowC + 1 End If Next i MsgBox "Работа программы завершена!", vbInformation Application.ScreenUpdating = True End Sub
[/vba] [moder]Файл с примером повышает шансы на быстрый ответ. И оформляйте код тегами (кнопка #)[/moder]
Доброго времени суток, я столкнулся с проблемой написании кода, который будет сравнивать два столбца с данными на разных листах(номер столбца, указывает пользователь, вернее его букву), и вот что у меня получилось, вернее не получилось, данные в ячейке значения не имеют
[vba]
Код
Private Sub CommandButton1_Click() Dim lLastRowA As Long Dim lLastRowC As Long Dim i As Long Dim rFind As Excel.Range lLastRowA = Лист1.Cells(Rows.Count, TextBox1.Text).End(xlUp).Row lLastRowC = Лист3.Cells(Rows.Count, "C").End(xlUp).Row + 1 Application.ScreenUpdating = False For i = 2 To lLastRowA Step 1 'и вот тут у меня начинается ошибка, с указанием столбца второго листа, т.е. с чем будет сравниваться Set rFind = Columns(Лист1.TextBox2.Text).Find(What:=Cells(i, TextBox1.Text).Text, LookIn:=xlValues, _ LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False) If Not rFind Is Nothing Then Cells(lLastRowC, "C").Value = Cells(i, "A").Value lLastRowC = lLastRowC + 1 End If Next i MsgBox "Работа программы завершена!", vbInformation Application.ScreenUpdating = True End Sub
[/vba] [moder]Файл с примером повышает шансы на быстрый ответ. И оформляйте код тегами (кнопка #)[/moder]medved_program