Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Есть файл с листами, как перекинуть данные игнорируя названия листов. / 7 сообщений из 7, страница 1 из 1
25.07.2012, 23:15
    #37893042
maccen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть файл с листами, как перекинуть данные игнорируя названия листов.
Например есть файл, там 30 листов, названия разные, например:
Название листов:
яблоки
груши
сливы
....
абрикосы

Мне нужно перекинуть данные в другой лист, с каждого листа выдернуть строчку
А1, и вставить ее в другой файл (например "отчет.xls")

Есть такой макрос:
Который открывает файл 01.xls, потом нужные данные перекидывает в файл Z.xls в лист 01, все работает нормально, только проблема такая, изменилась задача, суть та же, только я не знаю названия листов (их очень много, и они называются буквенно, наример яблоки,груши...).

Может есть какое-то решение, чтобы обойти этот вариант? Подскажите где копать!

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
FilePath = Workbooks("Z.xls").Path + "\" 
Workbooks.Open (FilePath + "kystu\04\01.xls") 
 
Workbooks("Z.xls").Worksheets("01").Cells(4, 3).Value = Workbooks("01.xls").Worksheets("01").Cells(135, 4).Value 
Workbooks("Z.xls").Worksheets("01").Cells(4, 4).Value = Workbooks("01.xls").Worksheets("01").Cells(136, 4).Value 
Workbooks("Z.xls").Worksheets("01").Cells(4, 5).Value = Workbooks("01.xls").Worksheets("01").Cells(137, 4).Value 
Workbooks("Z.xls").Worksheets("01").Cells(4, 6).Value = Workbooks("01.xls").Worksheets("01").Cells(138, 4).Value 
Workbooks("Z.xls").Worksheets("01").Cells(4, 7).Value = Workbooks("01.xls").Worksheets("01").Cells(139, 4).Value 
 
Workbooks("01.xls").Close (False) 
End Sub 
...
Рейтинг: 0 / 0
26.07.2012, 11:20
    #37893459
_slan_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть файл с листами, как перекинуть данные игнорируя названия листов.
maccen,

открываете файл как и раньше.

потом начинаете цикл

for each sh in activeworkbook.sheets
Workbooks("Z.xls").Worksheets("01").Cells(4, 3).Value=sh.cells(135,4)
next sh
...
Рейтинг: 0 / 0
26.07.2012, 12:22
    #37893593
maccen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть файл с листами, как перекинуть данные игнорируя названия листов.
Работает, только почему-то выдает ошибку, с первого листа данные вставляет, а вот со второго не хочет.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Public Sub macr1()
FilePath = Workbooks("exp_svodna_avto.xls").Path + "\"
Workbooks.Open (FilePath + "R\transport_01_16.xls")
 
'1-16


For Each sh In ActiveWorkbook.Sheets
Workbooks("exp_svodna_avto.xls").Worksheets("test").Range("A6:H6").Value = sh.Range("A6:H6").Value
Next sh
Workbooks("exp_svodna_avto.xls").Worksheets("test").Range("A7:H7").Value = sh.Range("A6:H6").Value


Workbooks("exp_svodna_avto.xls").Close (False)
End Sub


Private Sub CommandButton2_Click()

 Call macr1
 
End Sub
...
Рейтинг: 0 / 0
26.07.2012, 14:10
    #37893821
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть файл с листами, как перекинуть данные игнорируя названия листов.
maccen,

уерите вторую строку:
Код: vbnet
1.
Workbooks("exp_svodna_avto.xls").Worksheets("test").Range("A7:H7").Value = sh.Range("A6:H6").Value

Она выходит за границы цикла и переменная sh соответственно пуста.
...
Рейтинг: 0 / 0
26.07.2012, 16:36
    #37894091
maccen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть файл с листами, как перекинуть данные игнорируя названия листов.
The_Prist,

что-то я запутался вообще, вставляю

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Public Sub macr1()
FilePath = Workbooks("exp_svodna_avto.xls").Path + "\"
Workbooks.Open (FilePath + "R\transport_001.xls")
 
'1-16


For Each sh In ActiveWorkbook.Sheets
Workbooks("exp_svodna_avto.xls").Worksheets("test").Range("A6:H6").Value = sh.Range("A6:H6").Value
Workbooks("exp_svodna_avto.xls").Worksheets("test").Range("A7:H7").Value = sh.Range("A6:H6").Value
Workbooks("exp_svodna_avto.xls").Worksheets("test").Range("A8:H8").Value = sh.Range("A6:H6").Value
Next sh



Workbooks("transport_001.xls").Close (False)
End Sub


Private Sub CommandButton2_Click()

 Call macr1
 
End Sub



Вставляется только первая строчка, а мне нужно чтобы скрипт, прошелся по всем листам что есть в файле (их там может быть много), и вставил строчку с А6 по Н6
В другой файл exp_svodna_avto.xls в лист "test"

Просто файлов уйма, в ручную такое делать можно неделю :(
...
Рейтинг: 0 / 0
26.07.2012, 17:11
    #37894156
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть файл с листами, как перекинуть данные игнорируя названия листов.
maccen,

Это все от недостаточно точного описания задачи:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Public Sub macr1()
Dim lLastRow as long,sh as worksheet, sFilePath as string
sFilePath = Workbooks("exp_svodna_avto.xls").Path + "\"
Workbooks.Open (sFilePath + "R\transport_001.xls")
'1-16

For Each sh In ActiveWorkbook.Sheets
With Workbooks("exp_svodna_avto.xls").Worksheets("test")
lLastRow = .Cells(.rows.count,1).end(xlup).row + 1
.Range("A" & lLastRow).Resize(,8).Value = sh.Range("A6:H6").Value
End With
Next sh

Workbooks("transport_001.xls").Close (False)
End Sub

Private Sub CommandButton2_Click()
 Call macr1
End Sub
...
Рейтинг: 0 / 0
26.07.2012, 17:28
    #37894187
maccen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть файл с листами, как перекинуть данные игнорируя названия листов.
спасибо! работает :)
классно, подключил все файлы, минута и все отлично!

Огромно вам спасибо!
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Есть файл с листами, как перекинуть данные игнорируя названия листов. / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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