Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / данные из разных таблиц в одну / 5 сообщений из 5, страница 1 из 1
26.11.2012, 17:40
    #38053716
ola_ya_22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
данные из разных таблиц в одну
Код: 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.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Sub macros()
    Dim arr(), i As Long, lr As Long, fed As String
    Dim wb As Object, sh As Object, kult$
    On Error Resume Next
  
    Set wb = ActiveWorkbook
    With Workbooks.Add(xlWBATWorksheet).Sheets(1)
        [a1:i1].Value = Split("федеральный округ,Область,название культуры,Сельскохозяйственные организации,из них: малые предприятия,хозяйства " + _
"населения,крестьянские (фермерские) хозяйства и индивидуальные предприниматели,хозяйста всех категорий 2008,хозяйста всех категорий 2007", ",")

        For Each sh In wb.Sheets
            kult = sh.[a1] & " " & sh.[a2]
            arr = sh.UsedRange.Value
            For i = 6 To UBound(arr)

                If InStr(UCase(arr(i, 1)), UCase("федер")) = 0 Then
                    lr = .Cells(.Rows.Count, 2).End(xlUp).Row
                    .Cells(lr + 1, 2) = arr(i, 1)
                    .Cells(lr + 1, 3) = kult
                    .Cells(lr + 1, 4) = arr(i, 2)
                    .Cells(lr + 1, 5) = arr(i, 3)
                    .Cells(lr + 1, 6) = arr(i, 4)
                    .Cells(lr + 1, 7) = arr(i, 5)
                    .Cells(lr + 1, 8) = arr(i, 6)
                    .Cells(lr + 1, 9) = arr(i, 7)
                    .Cells(lr + 1, 1) = fed
                Else
                    fed = arr(i, 1)
                End If

            Next
        Next
        .UsedRange.EntireColumn.AutoFit
    End With
 On Error GoTo 0
End Sub



Модератор: Учимся использовать тэги оформления кода - FAQ

этот макрос переписывает данные из книги в один лист с определенными преобразованиями.
как его изменить так, чтобы он мог из определенной папки брать нужные таблицы-название таблиц должны прописываться в макросе и записывать данные с вышеописанными преобразованиями в один лист 1 книгу?
заранее спасибо.
...
Рейтинг: 0 / 0
27.11.2012, 11:17
    #38054407
ola_ya_22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
данные из разных таблиц в одну
нужный макрос находится в Книга1_!!!!!!!
нужно запустить его для файла tab460.

Код: vbnet
1.
2.
3.
Workbooks.Open Filename:= _
"O:\tab460.xlsm"
Application.Run "Книга1_!!!!!!!.xlsm!Module2.macros"



подскажите, пожалуйста, в чем ошибка?
...
Рейтинг: 0 / 0
27.11.2012, 12:46
    #38054603
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
данные из разных таблиц в одну
ola_ya_22,

Может проще переписать Set wb = ActiveWorkbook, где ссылку на wb получать через Workbooks.Open и открыть в файл, в данном случае tab460.
...
Рейтинг: 0 / 0
27.11.2012, 14:28
    #38054838
ola_ya_22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
данные из разных таблиц в одну
VSVLAD,

Workbooks.Open Filename:= _
"D:\tab461.xls"
Application.Run "Книга123.xlsm!Module2.macros"
ThisWorkbook.SaveAs ("O:\461.xls")
Workbooks("tab461.xls").Close

сохраняется открытая книга с макросом.
а нужно, чтобы сохранялась книга, которая получается после вызова Module2.macros и имеет название Лист1
...
Рейтинг: 0 / 0
27.11.2012, 14:57
    #38054896
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
данные из разных таблиц в одну
ola_ya_22,

Я говорю про это Set wb = Workbooks.Open( Filename:= "D:\tab461.xls" ), и не надо никаких Application.Run
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / данные из разных таблиц в одну / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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