Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VB в Excel: размножение данных по листам с условиями. / 4 сообщений из 4, страница 1 из 1
16.08.2005, 18:26:04
    #33219048
SimpleRat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB в Excel: размножение данных по листам с условиями.
Есть таблица в Excel с кучей постоянной добавляющихся листов.

В каждом листе есть данные, раскиданные по колонкам. Т.е. например, последняя заполненная ячейка в колонке А = А12, а в ячейке D = D34.
Необходимо по нажатию горячей клавиши (Alt+X, к примеру) данные из строки(т.е. всю строку), на которой стоит курсор, добавить к концу всех последующих листов (если брать пример выше, то на данный лист надо дабавлять в 35 строку), кроме тех листов, в которых в ячейке A1 стоит признак "Удален".

Кто помогёт составить макрос?

p.s. Формулы в Excel'е я еще могут составить, но VB......

з.ы. Что то типа такого..

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
z = <текущий лист>
<копируем в переменную/память строку, на которой стоит курсор>
For i = <текущий лист> To Excel.Worksheets.Count
        Worksheets(i).Activate
        if <не удален>
           <переходим на свободную строку>
           <вставляем строку>
        end if
Next i

Worksheets(z).Activate
...
Рейтинг: 0 / 0
16.08.2005, 19:12:53
    #33219168
Jem
Jem
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB в Excel: размножение данных по листам с условиями.
Честно говоря не знал как лучше выделить строку.
Но все работает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Sub tt()
Dim rg As Range
Dim s As Worksheet
Dim r As Long
Dim c As Long

If TypeName(Selection) <> "Range" Then Exit Sub

r = ActiveCell.Row
c = Cells.Columns.Count

Set rg = Range(Cells(r,  1 ), Cells(r, c))

For Each s In ActiveWorkbook.Sheets
    If s.Range("A1") = "" And s.Name <> ActiveSheet.Name Then
        r = s.UsedRange.Row + s.UsedRange.Rows.Count
        rg.Copy (s.Cells(r,  1 ))
        s.Activate
        Exit For
        
    End If
Next s

End Sub

...
Рейтинг: 0 / 0
16.08.2005, 19:36:16
    #33219178
SimpleRat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB в Excel: размножение данных по листам с условиями.
Гм. Не совсем. Останавливается на втором листе. :( А их на данный момент около 50.
...
Рейтинг: 0 / 0
17.08.2005, 14:40:02
    #33220756
Jem
Jem
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB в Excel: размножение данных по листам с условиями.
Останавливается потому что стоит
Код: plaintext
exit for
поставь перед ним коммент и делов то
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VB в Excel: размножение данных по листам с условиями. / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]