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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2016, 13:57   #11
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
Sub Get_Value_From_Book()
        Dim sFile As String, sh As Worksheet, ac As Long

        With Application.FileDialog(msoFileDialogFilePicker)
            .Filters.Clear
            .Filters.Add "Microsoft Excel files", "*.xlsx"
            .AllowMultiSelect = False
            .InitialFileName = ThisWorkbook.Path
            If .Show = 0 Then Exit Sub
            sFile = .SelectedItems(1)
        End With

        Set sh = ActiveWorkbook.ActiveSheet
        
        sh.Range("a2:b" & sh.Cells(sh.Rows.Count, 1).End(xlUp).Row).Clear

        With Application
            'отключаем обновление экрана - это убыстрит работу макроса
            .ScreenUpdating = False
            'отключаем события книги
            .EnableEvents = False
            'включаем ручной пересчёт формул - это убыстрит работу макроса
            ac = .Calculation: .Calculation = xlCalculationManual

            With GetObject(sFile).Sheets("Page1")
                .Range("p5:q5000").Copy sh.[a2]
                '.Parent.Close False
            End With

            'возвращаем назад всё отключенное/изменённое
            .ScreenUpdating = True
            .EnableEvents = True
            .Calculation = ac
        End With

End Sub
копирует на активный лист. Обработай sFile что-бы извлечь название файла, проверить если ти такой лист и туда вставлять данные. Если листа нету то создай его
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 17.01.2016, 14:12   #12
amadeus017
Форумчанин
 
Регистрация: 28.05.2014
Сообщений: 158
По умолчанию

Получилось следующее:
Наименование сумма
#ССЫЛКА! -
#ССЫЛКА! -
#ССЫЛКА! -

и т.д.

если встать на ячейку "#ССЫЛКА!" то вижу ошибку на ссылки несуществующих ячеек.
=ЕСЛИ(#ССЫЛКА!="";"";СЦЕПИТЬ(#ССЫЛК А!;":";#ССЫЛКА!;#ССЫЛКА!;ЛЕВСИМВ(#С СЫЛКА!;НАЙТИ(" ";#ССЫЛКА!;1)-1)))

Перенести нужно только значение, не формулы. А так пока все устраивает, а именно, было меню в котором можно выбрать файл для загрузки, очистка значений A2:B, и импорт в нужный диапазон.
amadeus017 вне форума Ответить с цитированием
Старый 17.01.2016, 14:24   #13
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

см. сообщение #10. я в 13:09 это
Цитата:
#ССЫЛКА!
исправил
было
Код:
.Cells(5, 16).Resize(.Rows.Count - 4, 2).Copy Range("A2")
стало
Код:
.Cells(5, 16).Resize(.Rows.Count - 4, 2).Copy
      Range("A2").PasteSpecial xlPasteValues
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 17.01.2016 в 14:26.
IgorGO вне форума Ответить с цитированием
Старый 17.01.2016, 14:26   #14
amadeus017
Форумчанин
 
Регистрация: 28.05.2014
Сообщений: 158
По умолчанию

Скопировал код от IgorGO, все работает!
Буду пробовать подставлять данные из файлов.
Огромное спасибо и прошу прощение, за отсутствие педагогических навыков донести тему (задачу).
amadeus017 вне форума Ответить с цитированием
Старый 17.01.2016, 14:34   #15
amadeus017
Форумчанин
 
Регистрация: 28.05.2014
Сообщений: 158
Хорошо


Все устраивает, отменно работает!
Большое спасибо IgorGO за код и Aleksandr H. за то, что уделили мне внимание!!!
amadeus017 вне форума Ответить с цитированием
Старый 17.01.2016, 14:36   #16
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
отсутствие педагогических навыков донести тему (задачу)
так выход есть! - читайте методические рекомендации "по постановке задачи..."
главное руководствуйтесь ими при формулировке задачи - это должно существенно ускорить процесс получения требуемого результата.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Данные из закрытой книги. Подправить макрос maragva Microsoft Office Excel 0 30.01.2011 14:51
необходимо копировать данные из 1-й книги в другую serafim09 Microsoft Office Excel 2 15.04.2010 10:43
СУММЕСЛИ из закрытой книги Sha Microsoft Office Excel 1 16.12.2009 17:09
Копирование из закрытой книги Maxx Microsoft Office Excel 11 11.08.2009 10:39
макрос который будет копировать столбец А из закрытой книги Данные, и вставлять в книгу Сток в столбец B Utirka66 Microsoft Office Excel 8 06.07.2009 09:53