powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Есть файл с листами, как перекинуть данные игнорируя названия листов.
7 сообщений из 7, страница 1 из 1
Есть файл с листами, как перекинуть данные игнорируя названия листов.
    #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
Есть файл с листами, как перекинуть данные игнорируя названия листов.
    #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
Есть файл с листами, как перекинуть данные игнорируя названия листов.
    #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
Есть файл с листами, как перекинуть данные игнорируя названия листов.
    #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
Есть файл с листами, как перекинуть данные игнорируя названия листов.
    #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
Есть файл с листами, как перекинуть данные игнорируя названия листов.
    #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
Есть файл с листами, как перекинуть данные игнорируя названия листов.
    #37894187
maccen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо! работает :)
классно, подключил все файлы, минута и все отлично!

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


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