Добрый день, уважаемые форумчане! В работе пользуемся базой, и там есть такой макрос, для того, что бы "ткнуть в нужную ячейку, а в верхней строке окажутся данные со всей строки, которые пойдут в дальнейшие формы":
Собственно вопрос: чем можно заменить этот макрос? В таблице под 500 строк и опрашивая их, файл зависает.
Добрый день, уважаемые форумчане! В работе пользуемся базой, и там есть такой макрос, для того, что бы "ткнуть в нужную ячейку, а в верхней строке окажутся данные со всей строки, которые пойдут в дальнейшие формы":
Private Sub Worksheet_SelectionChange(ByVal Target As Range) stroka = ActiveCell.Row With Sheets("База") 'номер последнего столбца lr = .Cells(stroka, Columns.Count).End(xlToLeft).Column .Cells(2, 1).Resize(, lr) = .Cells(stroka, 1).Resize(, lr) End With End Sub
[/vba] [p.s.]Кнопка fx - для оформления формул, для кода используйте #. Поправьте свой пост.[/p.s.]
Boonar, попробуйте так: [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) stroka = ActiveCell.Row With Sheets("База") 'номер последнего столбца lr = .Cells(stroka, Columns.Count).End(xlToLeft).Column .Cells(2, 1).Resize(, lr) = .Cells(stroka, 1).Resize(, lr) End With End Sub
[/vba] [p.s.]Кнопка fx - для оформления формул, для кода используйте #. Поправьте свой пост.[/p.s.]Manyasha
Boonar, 2 раза правила Вам пост, а Вы обратно все возвращаете Старые теги нужно удалить, выделить весь код в посте (который хотите оформить) и нажать на кнопку #. Должно получиться так [vbа][сode]код макроса[/сode][/vbа]
Boonar, 2 раза правила Вам пост, а Вы обратно все возвращаете Старые теги нужно удалить, выделить весь код в посте (который хотите оформить) и нажать на кнопку #. Должно получиться так [vbа][сode]код макроса[/сode][/vbа]Manyasha
Тяни-толкай получался) Спасибо за консультацию-сделал. По Вашему коду-не взлетел. Тот, который был-все прописывал во второй строке. Ваш-чего-то замолчал.
Тяни-толкай получался) Спасибо за консультацию-сделал. По Вашему коду-не взлетел. Тот, который был-все прописывал во второй строке. Ваш-чего-то замолчал. Boonar
Опыт приходит с возрастом. Но иногда, возраст приходит один...
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.EnableEvents = False stroka = ActiveCell.Row With Sheets("База") 'номер последнего столбца lr = .Cells(stroka, Columns.Count).End(xlToLeft).Column 'очищение строки 2 .Rows(2).ClearContents .Cells(2, 1).Resize(, lr).Value = .Cells(stroka, 1).Resize(, lr).Value End With Application.EnableEvents = True End Sub
[/vba] или вот еще вариант (в файле см. лист База2) [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.EnableEvents = False stroka = ActiveCell.Row With Sheets("База2") 'номер последнего столбца lr = .Cells(stroka, Columns.Count).End(xlToLeft).Column 'очищение строки 2 .Rows(2).ClearContents .Cells(stroka, 1).Resize(, lr).Copy .Cells(2, 1).PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False End With Application.EnableEvents = True End Sub
[/vba]
Boonar, а так? [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.EnableEvents = False stroka = ActiveCell.Row With Sheets("База") 'номер последнего столбца lr = .Cells(stroka, Columns.Count).End(xlToLeft).Column 'очищение строки 2 .Rows(2).ClearContents .Cells(2, 1).Resize(, lr).Value = .Cells(stroka, 1).Resize(, lr).Value End With Application.EnableEvents = True End Sub
[/vba] или вот еще вариант (в файле см. лист База2) [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.EnableEvents = False stroka = ActiveCell.Row With Sheets("База2") 'номер последнего столбца lr = .Cells(stroka, Columns.Count).End(xlToLeft).Column 'очищение строки 2 .Rows(2).ClearContents .Cells(stroka, 1).Resize(, lr).Copy .Cells(2, 1).PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False End With Application.EnableEvents = True End Sub
Марина. Второй вариант-работает именно так как надо. Третий-нет. [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.EnableEvents = False stroka = ActiveCell.Row With Sheets("База") 'номер последнего столбца lr = .Cells(stroka, Columns.Count).End(xlToLeft).Column 'очищение строки 2 .Rows(2).ClearContents .Cells(2, 1).Resize(, lr).Value = .Cells(stroka, 1).Resize(, lr).Value End With Application.EnableEvents = True End Sub
[/vba] даже на слабой машине не висит. Спасибо! Вы-МОЗГ!
Марина. Второй вариант-работает именно так как надо. Третий-нет. [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.EnableEvents = False stroka = ActiveCell.Row With Sheets("База") 'номер последнего столбца lr = .Cells(stroka, Columns.Count).End(xlToLeft).Column 'очищение строки 2 .Rows(2).ClearContents .Cells(2, 1).Resize(, lr).Value = .Cells(stroka, 1).Resize(, lr).Value End With Application.EnableEvents = True End Sub
[/vba] даже на слабой машине не висит. Спасибо! Вы-МОЗГ! Boonar
Опыт приходит с возрастом. Но иногда, возраст приходит один...