Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2011, 09:15   #11
was3110
Форумчанин
 
Аватар для was3110
 
Регистрация: 25.04.2010
Сообщений: 254
По умолчанию

Молодец. Видно желание изучать...
Можно (чисто для сокращения кода) учитывая, что
1) переменных на открытые книги может быть несколько
2) методы .Copy и .PasteSpecial можно сразу применять к объекту Range

Код:
Dim wb As Workbook, wb1 As Workbook, mR As Range
Set wb = ActiveWorkbook
Set wb1 = Workbooks.Open (Filename:="F:\Задание\Задание 1. Сводный отчет\Отчет филиала 1.xls")
wb1.Sheets("ИмяЛиста").Range("B5:E7").Copy
Set mR = wb.Sheets("Филиал1").Range("B5")
mR.PasteSpecial
wb1.Close
Set wb1 =Nothing

'то же с другими файлами

Set wb = Nothing
помогать студентам - моя вторая профессия
was3110 вне форума Ответить с цитированием
Старый 17.04.2011, 09:45   #12
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Цитата:
Сообщение от was3110 Посмотреть сообщение
Код:
Dim wb As Workbook, wb1 As Workbook, mR As Range
Set wb = ActiveWorkbook
Set wb1 = Workbooks.Open (Filename:="F:\Задание\Задание 1. Сводный отчет\Отчет филиала 1.xls")
wb1.Sheets("ИмяЛиста").Range("B5:E7").Copy
Set mR = wb.Sheets("Филиал1").Range("B5")
mR.PasteSpecial
wb1.Close
Set wb1 =Nothing

'то же с другими файлами

Set wb = Nothing
Слишком.
Код:
Sub www()
    Workbooks.Open("F:\Задание\Задание 1. Сводный отчет\Отчет филиала 1.xls").Sheets("ИмяЛиста").Range("B5:E7").Copy ThisWorkbook.Sheets("Филиал1").[B5]
    ActiveWorkbook.Close 0
End Sub
Но я бы делал так:
Код:
Sub www()
    a = GetObject("F:\Задание\Задание 1. Сводный отчет\Отчет филиала 1.xls").Sheets("ИмяЛиста").[B5:E7]
    ThisWorkbook.Sheets("Филиал1").[B5].Resize(UBound(a), UBound(a, 1)) = a
    Workbooks("Отчет филиала 1.xls").Close 0
End Sub
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728

Последний раз редактировалось kuklp; 17.04.2011 в 10:13.
kuklp вне форума Ответить с цитированием
Старый 17.04.2011, 10:46   #13
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Прчитал тему с начала:
Код:
Sub www()
For i = 1 To 5 ' или сколько там у Вас отчетов...
    a = GetObject("F:\Задание\Задание 1. Сводный отчет\Отчет филиала " & i & ".xls").Sheets("ИмяЛиста").[B5:E7]
    If ThisWorkbook.Sheets("Филиал1").[B5].End(xlDown).Row > 65000 Then
        ThisWorkbook.Sheets("Филиал1").[B5].Resize(UBound(a), UBound(a, 1)) = a
    Else
        ThisWorkbook.Sheets("Филиал1").[B5].End(xlDown)(2, 1).Resize(UBound(a), UBound(a, 1)) = a
    End If
    Workbooks("Отчет филиала " & i & ".xls").Close 0
    Next
End Sub
Если же нужна сумма со всех(однотипных) листов, книг - см. пост Hugo121.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728

Последний раз редактировалось kuklp; 17.04.2011 в 10:55.
kuklp вне форума Ответить с цитированием
Старый 17.04.2011, 11:26   #14
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,079
По умолчанию

в зависимости от
-периода
-филиала
-у нового филиала нет старых дат

могут меняться показатели и дате

поэтому
-перевод в столбик
-и чистая сводная

надеюсь, что приложила в е2003(у меня 2010)
Вложения
Тип файла: zip sw110417.zip (35.0 Кб, 16 просмотров)
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 17.04.2011, 11:38   #15
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Цитата:
Сообщение от shanemac51 Посмотреть сообщение
надеюсь, что приложила в е2003(у меня 2010)
Да. В 2003 сводная читается. В макросе строка Set ws1 = Excel.Workbooks(1).Worksheets("rab" )
выдает ошибку. Workbooks(1) у меня personal.xls. Думаю, разумно будет явно указать имя книги.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 17.04.2011, 11:49   #16
mr. Good
Новичок
Джуниор
 
Регистрация: 16.04.2011
Сообщений: 9
По умолчанию

Спасибо вам всем большое, ребята. Вижу вы все тут так профессионально управляетесь с переменными, что я вам уже завидую. Надеюсь, что мне до вашего уровня недалеко.
Прошу помочь мне с графиками еще. Вот задание, в нем четыре подзадания, так сказать. С первым подзаданием я справился легко, а с тремя оставшимися графиками случился конфуз. В моей профессиональной деятельности мне никогда не приходилось сталкиваться с ними, но сейчас перехожу на управленческий учет в организации, а им там очень нужны именно эти знания, вот и прислали задания для проверки. Меня нужно только подтолкнуть в заданном направлении, подсказать, так сказать. Попробовал вручную их посоздавать у меня ничего не получается. Видимо придется опять с макросами работать. С созданием графических макросов у меня вообще пробел, не знаю даже основных команд.

Мне нужно создать новую тему или в этой пойдет?
Вложения
Тип файла: zip Таблицы и графики.zip (82.8 Кб, 6 просмотров)
mr. Good вне форума Ответить с цитированием
Старый 17.04.2011, 11:50   #17
mr. Good
Новичок
Джуниор
 
Регистрация: 16.04.2011
Сообщений: 9
По умолчанию

Ой, извините! Вот этот файл:
Вложения
Тип файла: zip Таблицы и графики.zip (110.2 Кб, 11 просмотров)
mr. Good вне форума Ответить с цитированием
Старый 17.04.2011, 12:34   #18
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,079
По умолчанию

Цитата:
Сообщение от kuklp Посмотреть сообщение
Да. В 2003 сводная читается. В макросе строка Set ws1 = Excel.Workbooks(1).Worksheets("rab" )
выдает ошибку. Workbooks(1) у меня personal.xls. Думаю, разумно будет явно указать имя книги.
это уже мелочи
-зациклить по DIR
-не обновлять пока считается --для ускорения
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание отчета Ol_Bak Microsoft Office Access 1 25.01.2011 13:43
Создание отчета -=pasha=- Компоненты Delphi 5 20.01.2011 07:44
Создание сводного отчета Гошик Microsoft Office Excel 1 30.07.2010 22:52
Создание отчета Deni55 Microsoft Office Excel 13 15.06.2009 14:53