Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Копирование данных из закрытой книги - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Копирование данных из закрытой книги (Формулы)
Копирование данных из закрытой книги
Ed_Vard Дата: Среда, 21.09.2011, 17:43 | Сообщение № 21
Группа: Пользователи
Ранг: Участник
Сообщений: 82
Репутация: 0 ±
Замечаний: 0% ±

Цитата nilem
Range("A1").CurrentRegion.Copy Workbooks("Другая_книга.xls").Sheets(1).Range("H6")

Не понятно - что должно было произойти - меня ничего не происходит
Вот макрос - который представлен сдесь уважаемым Hugo,
[vba]
Код
Sub Get_Value_From_Close_Book_Formula()
Dim sPath As String, sFile As String, sShName As String, sep_ As String
sShName = "Лист1"

With Application.FileDialog(msoFileDialogFilePicker)
.Filters.Clear
.Filters.Add "Microsoft Excel files", "*.xls"
.AllowMultiSelect = False
.InitialFileName = ThisWorkbook.Path
If .Show = 0 Then Exit Sub
sep_ = Application.PathSeparator
sFile = Split(.SelectedItems(1), sep_)(UBound(Split(.SelectedItems(1), sep_))) ' "Êíèãà1.xls"
sPath = Replace(.SelectedItems(1), sFile, "") '"C:\Documents and Settings\"
End With

With Range("H6:AS100")
.Formula = "='" & sPath & "[" & sFile & "]" & sShName & "'!" & "A6"
.Value = .Value
End With
End Sub
[/vba]
Он в принципе устраивает - но в нем нужно указывать - какой диапазон данных брать - а уменя их в закрытом файле в примере может больше 100 или меньше! А макрос либо будет захватывать пустые строки если их допустим меньше 100 либо обрезать данные если их больше! Поэтому вопрос - как можно брать только заполненые данные и вставлять их?


Сообщение отредактировал Ed_Vard - Среда, 21.09.2011, 17:51
 
Ответить
Сообщение
Цитата nilem
Range("A1").CurrentRegion.Copy Workbooks("Другая_книга.xls").Sheets(1).Range("H6")

Не понятно - что должно было произойти - меня ничего не происходит
Вот макрос - который представлен сдесь уважаемым Hugo,
[vba]
Код
Sub Get_Value_From_Close_Book_Formula()
Dim sPath As String, sFile As String, sShName As String, sep_ As String
sShName = "Лист1"

With Application.FileDialog(msoFileDialogFilePicker)
.Filters.Clear
.Filters.Add "Microsoft Excel files", "*.xls"
.AllowMultiSelect = False
.InitialFileName = ThisWorkbook.Path
If .Show = 0 Then Exit Sub
sep_ = Application.PathSeparator
sFile = Split(.SelectedItems(1), sep_)(UBound(Split(.SelectedItems(1), sep_))) ' "Êíèãà1.xls"
sPath = Replace(.SelectedItems(1), sFile, "") '"C:\Documents and Settings\"
End With

With Range("H6:AS100")
.Formula = "='" & sPath & "[" & sFile & "]" & sShName & "'!" & "A6"
.Value = .Value
End With
End Sub
[/vba]
Он в принципе устраивает - но в нем нужно указывать - какой диапазон данных брать - а уменя их в закрытом файле в примере может больше 100 или меньше! А макрос либо будет захватывать пустые строки если их допустим меньше 100 либо обрезать данные если их больше! Поэтому вопрос - как можно брать только заполненые данные и вставлять их?

Автор - Ed_Vard
Дата добавления - 21.09.2011 в 17:43
nilem Дата: Среда, 21.09.2011, 18:05 | Сообщение № 22
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Цитата Ed_Vard
Есть книга Пример с таблицей из которой нужно получить данные в диапазоне А1:AL в другую открытую книгу начиная с ячейки Н6 и втавил все скопированне данные.


В книгу "Пример.xls" в стандартный модуль вставляем это
[vba]
Код
Sub ert()
Range("A1").CurrentRegion.Copy Workbooks("Другая_книга.xls").Sheets(1).Range("H6")
End Sub
[/vba]
... и выполняем при активном листе с данными в книге "Пример". Диапазон (непрерывный диапазон, как у вас в примере) копируется в открытую книгу с именем "Другая_книга.xls" на 1-й лист, начиная с яч. Н6.
На всякий случай проверил. У вас не так?


Яндекс.Деньги 4100159601573

Сообщение отредактировал nilem - Среда, 21.09.2011, 18:07
 
Ответить
Сообщение
Цитата Ed_Vard
Есть книга Пример с таблицей из которой нужно получить данные в диапазоне А1:AL в другую открытую книгу начиная с ячейки Н6 и втавил все скопированне данные.


В книгу "Пример.xls" в стандартный модуль вставляем это
[vba]
Код
Sub ert()
Range("A1").CurrentRegion.Copy Workbooks("Другая_книга.xls").Sheets(1).Range("H6")
End Sub
[/vba]
... и выполняем при активном листе с данными в книге "Пример". Диапазон (непрерывный диапазон, как у вас в примере) копируется в открытую книгу с именем "Другая_книга.xls" на 1-й лист, начиная с яч. Н6.
На всякий случай проверил. У вас не так?

Автор - nilem
Дата добавления - 21.09.2011 в 18:05
Hugo Дата: Среда, 21.09.2011, 21:53 | Сообщение № 23
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация: 707 ±
Замечаний: 0% ±

2019
Ed_Vard, Вам нужно объединить два кода - мой пример и код Николая.

Мой пример состоит из двух половин - в первой половине получаем в переменную путь к открываемому файлу, во второй половине используем этот путь в формулах, затем заменяем формулы полученными данными.
И да, в том коде действительно ошибка - правильная строка такая:
[vba]
Код
.Formula = "='" & sPath & "[" & sFile & "]" & sShName & "'!" & "A1"
[/vba]
И диапазон в строке
[vba]
Код
With Range("C2:С101")
[/vba]
можно менять как хочется - в каждую ячейку этого диапазона будет вписана формула с ссылкой на соответствующую ячейку выбранной книги (жёстко прописанного листа).
Но диапазон действительно нужно знать заранее - т.к. книга кодом не открывается, то посмотреть, что на этот раз нужно копировать, этим кодом не получится.

Но если объединить эти два кода (добавив процесс открытия файла) - то уже можно сперва посмотреть.
А в случае с этим примером - можно не глядя копировать Range("A1").CurrentRegion, как написал Николай.

Получается такой несложный код:

[vba]
Код
Option Explicit

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", "*.xls"
           .AllowMultiSelect = False
           .InitialFileName = ThisWorkbook.Path
           If .Show = 0 Then Exit Sub
           sFile = .SelectedItems(1)
       End With

       Set sh = ActiveWorkbook.ActiveSheet

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

           With GetObject(sFile).Sheets(1)
               .[A1].CurrentRegion.Copy sh.[H6]
               .Parent.Close False
           End With

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

End Sub
[/vba]
К сообщению приложен файл: To.Ed_Vard.xls (33.0 Kb)


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеEd_Vard, Вам нужно объединить два кода - мой пример и код Николая.

Мой пример состоит из двух половин - в первой половине получаем в переменную путь к открываемому файлу, во второй половине используем этот путь в формулах, затем заменяем формулы полученными данными.
И да, в том коде действительно ошибка - правильная строка такая:
[vba]
Код
.Formula = "='" & sPath & "[" & sFile & "]" & sShName & "'!" & "A1"
[/vba]
И диапазон в строке
[vba]
Код
With Range("C2:С101")
[/vba]
можно менять как хочется - в каждую ячейку этого диапазона будет вписана формула с ссылкой на соответствующую ячейку выбранной книги (жёстко прописанного листа).
Но диапазон действительно нужно знать заранее - т.к. книга кодом не открывается, то посмотреть, что на этот раз нужно копировать, этим кодом не получится.

Но если объединить эти два кода (добавив процесс открытия файла) - то уже можно сперва посмотреть.
А в случае с этим примером - можно не глядя копировать Range("A1").CurrentRegion, как написал Николай.

Получается такой несложный код:

[vba]
Код
Option Explicit

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", "*.xls"
           .AllowMultiSelect = False
           .InitialFileName = ThisWorkbook.Path
           If .Show = 0 Then Exit Sub
           sFile = .SelectedItems(1)
       End With

       Set sh = ActiveWorkbook.ActiveSheet

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

           With GetObject(sFile).Sheets(1)
               .[A1].CurrentRegion.Copy sh.[H6]
               .Parent.Close False
           End With

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

End Sub
[/vba]

Автор - Hugo
Дата добавления - 21.09.2011 в 21:53
Ed_Vard Дата: Четверг, 22.09.2011, 09:27 | Сообщение № 24
Группа: Пользователи
Ранг: Участник
Сообщений: 82
Репутация: 0 ±
Замечаний: 0% ±

Quote (nilem)
На всякий случай проверил. У вас не так?

Прошу прощения - протупил немного sad - сразу не въехал!
Hugo, - спасибо за очень развенутое объяснение - все пределно понятно - но как всегда - одно НО - происходит копирование всего листа - независимо от того - что указываешь А1 или А6! Это нужно для того - чтоб не захватывать шапку таблицы - а брать только данные - для последующей обработки - т.к. на листе - куда вставляються данные - есть еще одна таблица!
Возможно ли сдесь использовать Application.ScreenUpdating = False дабы всетаки открывать книгу в фоне - получить количество строк с данными - и полученую переменную передать в диапазон ? Конечно - это не совсем из "закрытой" книги - но всетаки!
 
Ответить
Сообщение
Quote (nilem)
На всякий случай проверил. У вас не так?

Прошу прощения - протупил немного sad - сразу не въехал!
Hugo, - спасибо за очень развенутое объяснение - все пределно понятно - но как всегда - одно НО - происходит копирование всего листа - независимо от того - что указываешь А1 или А6! Это нужно для того - чтоб не захватывать шапку таблицы - а брать только данные - для последующей обработки - т.к. на листе - куда вставляються данные - есть еще одна таблица!
Возможно ли сдесь использовать Application.ScreenUpdating = False дабы всетаки открывать книгу в фоне - получить количество строк с данными - и полученую переменную передать в диапазон ? Конечно - это не совсем из "закрытой" книги - но всетаки!

Автор - Ed_Vard
Дата добавления - 22.09.2011 в 09:27
Hugo Дата: Четверг, 22.09.2011, 09:45 | Сообщение № 25
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация: 707 ±
Замечаний: 0% ±

2019
Для удаления шапки (если она постоянная) совсем не нужно данные смотреть
А давайте сами код подправьте - Вы ведь не слова не сказали в задании про то, что шапка не нужна...

Вот пример сдвига выбора таблицы (6 сторок ненужная шапка):

[vba]
Код
Sub ttt()
ActiveSheet.UsedRange.Select
With ActiveSheet.UsedRange
.Resize(.Rows.Count - 6).Offset(6).Select
End With
End Sub
[/vba]

И Application.ScreenUpdating = False - это совсем не для того, чтобы открывать книгу в фоне...


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеДля удаления шапки (если она постоянная) совсем не нужно данные смотреть
А давайте сами код подправьте - Вы ведь не слова не сказали в задании про то, что шапка не нужна...

Вот пример сдвига выбора таблицы (6 сторок ненужная шапка):

[vba]
Код
Sub ttt()
ActiveSheet.UsedRange.Select
With ActiveSheet.UsedRange
.Resize(.Rows.Count - 6).Offset(6).Select
End With
End Sub
[/vba]

И Application.ScreenUpdating = False - это совсем не для того, чтобы открывать книгу в фоне...

Автор - Hugo
Дата добавления - 22.09.2011 в 09:45
Ed_Vard Дата: Четверг, 22.09.2011, 10:30 | Сообщение № 26
Группа: Пользователи
Ранг: Участник
Сообщений: 82
Репутация: 0 ±
Замечаний: 0% ±

Quote (Hugo)
И Application.ScreenUpdating = False - это совсем не для того, чтобы открывать книгу в фоне...

Ну - немного неправильно выразился - просто обновления экрана не будет - а книга будет за это время открыта и закрыта!
 
Ответить
Сообщение
Quote (Hugo)
И Application.ScreenUpdating = False - это совсем не для того, чтобы открывать книгу в фоне...

Ну - немного неправильно выразился - просто обновления экрана не будет - а книга будет за это время открыта и закрыта!

Автор - Ed_Vard
Дата добавления - 22.09.2011 в 10:30
Hugo Дата: Четверг, 22.09.2011, 10:46 | Сообщение № 27
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация: 707 ±
Замечаний: 0% ±

2019
Так книга в коде №23 открывается и закрывается - так оно и работает.
Но если шапка постоянна и не "бегает" по листу - чего на неё смотреть? Вполне кода №25 хватает, чтоб её откинуть.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеТак книга в коде №23 открывается и закрывается - так оно и работает.
Но если шапка постоянна и не "бегает" по листу - чего на неё смотреть? Вполне кода №25 хватает, чтоб её откинуть.

Автор - Hugo
Дата добавления - 22.09.2011 в 10:46
Ed_Vard Дата: Четверг, 22.09.2011, 14:16 | Сообщение № 28
Группа: Пользователи
Ранг: Участник
Сообщений: 82
Репутация: 0 ±
Замечаний: 0% ±

Огромное спасибо Hugo, и nilem, за оказанную помощь, в конечном варианте выглядит вот так:
[vba]
Код
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", "*.xls"
            .AllowMultiSelect = False
            .InitialFileName = ThisWorkbook.Path
            If .Show = 0 Then Exit Sub
            sFile = .SelectedItems(1)
        End With

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

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

            With GetObject(sFile).Sheets(1).UsedRange
                .Resize(.Rows.Count - 5).Offset(5).Copy sh.[H6]
                '.Parent.Close False
            End With

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

End Sub
[/vba]

Во сяком случае у меня работает может комуто пригодиться
 
Ответить
СообщениеОгромное спасибо Hugo, и nilem, за оказанную помощь, в конечном варианте выглядит вот так:
[vba]
Код
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", "*.xls"
            .AllowMultiSelect = False
            .InitialFileName = ThisWorkbook.Path
            If .Show = 0 Then Exit Sub
            sFile = .SelectedItems(1)
        End With

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

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

            With GetObject(sFile).Sheets(1).UsedRange
                .Resize(.Rows.Count - 5).Offset(5).Copy sh.[H6]
                '.Parent.Close False
            End With

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

End Sub
[/vba]

Во сяком случае у меня работает может комуто пригодиться

Автор - Ed_Vard
Дата добавления - 22.09.2011 в 14:16
Hugo Дата: Четверг, 22.09.2011, 14:32 | Сообщение № 29
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация: 707 ±
Замечаний: 0% ±

2019
Я вообще-то не думал, что так буквально код примените - думал, что currentregion будете ресайзить/оффсетить, но можно и так, если там ничего больше нет.
Но эти цифры кажется не должны быть одинаковыми, если таблица ровная - в моём примере снизу одна строка с ИТОГО откидывалась smile
Так что посмотрите, что там копируется - не пропало ли чего... Я особо не тестил, не изучал...

А '.Parent.Close False зря отключили - так файл остаётся невидимо открытым.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеЯ вообще-то не думал, что так буквально код примените - думал, что currentregion будете ресайзить/оффсетить, но можно и так, если там ничего больше нет.
Но эти цифры кажется не должны быть одинаковыми, если таблица ровная - в моём примере снизу одна строка с ИТОГО откидывалась smile
Так что посмотрите, что там копируется - не пропало ли чего... Я особо не тестил, не изучал...

А '.Parent.Close False зря отключили - так файл остаётся невидимо открытым.

Автор - Hugo
Дата добавления - 22.09.2011 в 14:32
Гость Дата: Четверг, 22.09.2011, 18:41 | Сообщение № 30
Группа: Гости
Quote (Hugo)
Я вообще-то не думал, что так буквально код примените - думал, что currentregion будете ресайзить/оффсетить, но можно и так, если там ничего больше нет.

Quote
'.Parent.Close False

Почему то в 2010 офисе не захотел работать - а т.к. нужно было срочно и инет на работе пропал - то не стал изобретать велосипед!
Кпируеться вроде все нормально - пробовал с разной длиной таблицы - вроде ничего!
не совсем понял - какие цифры
Quote
Но эти цифры не должны быть одинаковыми
 
Ответить
Сообщение
Quote (Hugo)
Я вообще-то не думал, что так буквально код примените - думал, что currentregion будете ресайзить/оффсетить, но можно и так, если там ничего больше нет.

Quote
'.Parent.Close False

Почему то в 2010 офисе не захотел работать - а т.к. нужно было срочно и инет на работе пропал - то не стал изобретать велосипед!
Кпируеться вроде все нормально - пробовал с разной длиной таблицы - вроде ничего!
не совсем понял - какие цифры
Quote
Но эти цифры не должны быть одинаковыми

Автор - Гость
Дата добавления - 22.09.2011 в 18:41
Ed_Vard Дата: Четверг, 22.09.2011, 20:40 | Сообщение № 31
Группа: Пользователи
Ранг: Участник
Сообщений: 82
Репутация: 0 ±
Замечаний: 0% ±

Опс, что то я гостем по запарке
я конечно понимаю - что профан в этом деле и максимум до чего додумался это
[vba]
Код
With GetObject(sFile).Sheets(1).[A1].CurrentRegion
              .Resize(.Rows.Count - 5).Offset(5).Copy sh.[H6]
              '.Parent.Close False
          End With
[/vba]

и все равно .Parent.Close False не работает - хотя файл не зависает в процесах - иначе я так думаю его открыть былобы проблематично!
 
Ответить
СообщениеОпс, что то я гостем по запарке
я конечно понимаю - что профан в этом деле и максимум до чего додумался это
[vba]
Код
With GetObject(sFile).Sheets(1).[A1].CurrentRegion
              .Resize(.Rows.Count - 5).Offset(5).Copy sh.[H6]
              '.Parent.Close False
          End With
[/vba]

и все равно .Parent.Close False не работает - хотя файл не зависает в процесах - иначе я так думаю его открыть былобы проблематично!

Автор - Ed_Vard
Дата добавления - 22.09.2011 в 20:40
Hugo Дата: Четверг, 22.09.2011, 22:10 | Сообщение № 32
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация: 707 ±
Замечаний: 0% ±

2019
Чтоб посмотреть, что копируется - тормозните код на строке
[vba]
Код
With GetObject(sFile).Sheets(1).[A1].CurrentRegion         
                     .Resize(.Rows.Count - 5).Offset(5).Select 'Copy sh.[H6]   '<-- ВОТ НА ЭТОЙ
                     '.Parent.Close False         
                 End With
[/vba]
Мне кажется, что всё же 5 правильно - проверил на файле http://www.excelworld.ru/_fr/5/5265158.xls
Что-то я сам запутался...

А насчёт .Parent.Close False - я не знаю, под 2010 не работал, но гляньте, какие окна файлов скрыты - наверняка там и этот файл есть после окончания работы кода.
В 2007 это в Вид->Окно->Отобразить

Может быть [A1].CurrentRegion мешает - попробуйте так:

[vba]
Код
    With GetObject(sFile).Sheets(1)
          With .[A1].CurrentRegion
              .Resize(.Rows.Count - 5).Offset(5).Copy sh.[H6]
          End With
          .Parent.Close False
      End With
[/vba]


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеЧтоб посмотреть, что копируется - тормозните код на строке
[vba]
Код
With GetObject(sFile).Sheets(1).[A1].CurrentRegion         
                     .Resize(.Rows.Count - 5).Offset(5).Select 'Copy sh.[H6]   '<-- ВОТ НА ЭТОЙ
                     '.Parent.Close False         
                 End With
[/vba]
Мне кажется, что всё же 5 правильно - проверил на файле http://www.excelworld.ru/_fr/5/5265158.xls
Что-то я сам запутался...

А насчёт .Parent.Close False - я не знаю, под 2010 не работал, но гляньте, какие окна файлов скрыты - наверняка там и этот файл есть после окончания работы кода.
В 2007 это в Вид->Окно->Отобразить

Может быть [A1].CurrentRegion мешает - попробуйте так:

[vba]
Код
    With GetObject(sFile).Sheets(1)
          With .[A1].CurrentRegion
              .Resize(.Rows.Count - 5).Offset(5).Copy sh.[H6]
          End With
          .Parent.Close False
      End With
[/vba]

Автор - Hugo
Дата добавления - 22.09.2011 в 22:10
Ed_Vard Дата: Четверг, 22.09.2011, 22:44 | Сообщение № 33
Группа: Пользователи
Ранг: Участник
Сообщений: 82
Репутация: 0 ±
Замечаний: 0% ±

Hugo, спасибо - действительно - мешал [A1].CurrentRegion мешал! Ваш вариант проходит нормально!
Но и без него окна не остаеться - в 2010 это Вид->Перейти в другое окно - там его тоже нет! Хотя это можно проверить просто поробовав запустить книгу - откуда происходило копирование - если она открыта - то выдаст предупреждение.
 
Ответить
СообщениеHugo, спасибо - действительно - мешал [A1].CurrentRegion мешал! Ваш вариант проходит нормально!
Но и без него окна не остаеться - в 2010 это Вид->Перейти в другое окно - там его тоже нет! Хотя это можно проверить просто поробовав запустить книгу - откуда происходило копирование - если она открыта - то выдаст предупреждение.

Автор - Ed_Vard
Дата добавления - 22.09.2011 в 22:44
Hugo Дата: Четверг, 22.09.2011, 23:25 | Сообщение № 34
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация: 707 ±
Замечаний: 0% ±

2019
Не Перейти, а Вид->Окно->Отобразить!


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеНе Перейти, а Вид->Окно->Отобразить!

Автор - Hugo
Дата добавления - 22.09.2011 в 23:25
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Копирование данных из закрытой книги (Формулы)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!