Копировать защищенные ячейки excel

 

Добрый день, форумчани! Если в таблице зашишены несколько ячейки, то как их копировать и ставить в другое место (в том же листе), чтобы сохранялась зашита? Заранее блогадарю.

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

Выделить диапазон, Ctrl+C, поставить курсор на нужную ячейку, Ctrl+V.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

Наверное я не правильно выразился. В таблицу периодически добавляются новые строки. Я хочу скопировать зашишенные ячейки с одной строки и  ставить их в другое место, так чтобы опять не понадобилось их зашишать.  

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

Признак заЩиты — это свойство ячейки. Когда копируете и вставляете ячейку(и) то и это свойство наследуется, как и формат, формулы и пр. содержимое.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

?!  ест еще кто? :)

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Вам мало?
Чем не нравится ответ? Если не подходит, то причина  не в количестве помогающих, а в куцем описании проблемы.

 

Выделить диапазон, Ctrl+C, поставить курсор на нужную ячейку, Ctrl+V.   не помогает

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Я Вам скажу, что у меня кот живет с лошадиными ушами — поверите или показать попросите?  Как понять, что Вы делаете и как, на каком листе? Показывать на примере нужно.

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

bahruzbahruz, покажите, пожалуйста, в файле как есть после копипаста, объясните что не так, и на отдельном листе той же книги покажите как должно быть после копипаста.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 
JayBhagavan

, файл добавлен. Если без макроса не получается, пусть будет с макросом. Спасибо всем.

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

bahruzbahruz, теперь понятно. Когда лист защищён, то при копировании ячеек с защитой признак защиты не наследуется.
Надо понять, с какой целью Вы копируете яч. с защитой и тогда попробуем найти решение данного вопроса.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

vitareiki

Пользователь

Сообщений: 82
Регистрация: 12.04.2017

На ЗАЩИЩЕННОМ ЛИСТЕ — многие Функции ОГРАНИЧЕНЫ или вообще НЕ РАБОТАЮТ !!!
ЕСЛИ это ваш файл и вы знаете ПАРОЛЬ, то как вариант, можно :
1 — сначала СНЯТЬ ЗАЩИТУ с листа
2 — скопировать что нужно …  

3 — и снова поставить ЗАЩИТУ

ЕСЛИ это чужой файл и вы НЕ знаете ПАРОЛЬ, то можно :
1 — просто СКОПИРОВАТЬ содержимое листа и вставить на другой лист
и можете редактировать содержимое листа как пожелаете ….

Из формулировки вопроса не совсем понятно, что ИМЕННО нужно сделать …

 

Добрый день. Но, ребята, что здесь не понятного. Хочу скопировать строку в котором имеется защищенные ячейки и ставить его в другом месте. В этом случае в вставленном сроке те ячейки которые имели защиты они оказываются не защищенными. Что надо делать, чтобы при копирование и вставке защита сохранялось? Чтобы заново их не приходилось защищать. Спасибо за понимание и терпение.

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

#14

21.10.2018 09:57:07

Цитата
bahruzbahruz написал: Что надо делать, чтобы при копирование и вставке защита сохранялось?

Снять защиту с листа, скопировать яч., вставить, установить защиту на лист.
Запишите эти действия в макросе, на лист добавьте кнопку, на кнопу повесьте макрос.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

vitareiki

Пользователь

Сообщений: 82
Регистрация: 12.04.2017

#15

21.10.2018 12:56:55

bahruzbahruz

 что здесь не понятного ?.. Ну, ясно же написано :

Цитата
vitareiki написал:
На ЗАЩИЩЕННОМ ЛИСТЕ — многие Функции ОГРАНИЧЕНЫ или вообще НЕ РАБОТАЮТ !!!

в том числе и Команды «КОПИРОВАТЬ-ВСТАВИТЬ» — тоже ОГРАНИЧЕНЫ !!!  —  в частности, например, защита ячеек НЕ КОПИРУЕТСЯ, что вас как раз и не устраивает …
Вы работаете как раз на ЗАЩИЩЕННОМ ЛИСТЕ !!! — Следовательно, самый простой способ решения данного вопроса :

Цитата
vitareiki написал:
1 — сначала СНЯТЬ ЗАЩИТУ с листа ,..  2 — скопировать что нужно и вставить куда нужно ,..  3 — и снова поставить ЗАЩИТУ

ВСЕ ГЕНИАЛЬНОЕ — ПРОСТО !!!   :)

Изменено: vitareiki21.10.2018 13:08:08

 

всем спасибо. не возможно, значить не возможно. но очень жаль.

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

bahruzbahruz, возможно макросом. Вас устроит?

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 
 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

Выделили что надо скопировать на защищённом листе, нажали кнопку, указали куда копировать, Ок или Отмена, если передумали.
Работает только для листа с именем «Sheet1». Если нужно для листа с другим именем, то измените значение константы s_WSH_NAME на требуемое.
Пароль на защиту сейчас пустой. Требуемый пароль присвойте константе s_PWD. Как защитить пароль от посторонних глаз — это уже поищите самостоятельно.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 
JayBhagavan

, большое спасибо. вот это то, что хотел. вы облегчили работу на многое.

 

Евгений Заикин

Пользователь

Сообщений: 6
Регистрация: 28.10.2021

#21

28.10.2021 16:02:55

Цитата
JayBhagavan написал:
Работает только для листа с именем «Sheet1». Если нужно для листа с другим именем, то измените значение константы s_WSH_NAME на требуемое.

кто подскажет как исправить этот макрос чтобы он работал на всех листах книги?
буду бесконечно благодарен!

поясню: если исправлять s_WSH_NAME на имя второго листа , на первом листе он перестает работать

 

New

Пользователь

Сообщений: 4582
Регистрация: 06.01.2013

#22

28.10.2021 16:18:08

не тестировал, но попробуйте

Код
Public Const s_PWD As String = "" 'укажите пароль внутри кавычек

Sub jjj_copy_rng_on_protected_wsh()
    On Error GoTo err_handler
    If StrComp(TypeName(Selection), "Range", vbTextCompare) <> 0 Then Exit Sub
    'If StrComp(ActiveSheet.Name, s_WSH_NAME, vbTextCompare) <> 0 Then Exit Sub
    Dim vTmp As Variant
    On Error Resume Next
    Set vTmp = Application.InputBox(Type:=8, Prompt:="Укажите ячейку, куда скопировать выделенный диапазон.")
    If vTmp Is Nothing Then Exit Sub
    On Error GoTo err_handler
    'If StrComp(vTmp.Parent.Name, s_WSH_NAME, vbTextCompare) <> 0 Then Exit Sub
    If ActiveSheet.ProtectContents Then ActiveSheet.Unprotect s_PWD
    Selection.Copy vTmp
    If Not ActiveSheet.ProtectContents Then ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=s_PWD
    On Error GoTo 0
err_handler:
    If Err <> 0 Then MsgBox Err.Number & " - " & Err.Description, vbCritical 'Else Debug.Print "Ladno!"
End Sub
 

Евгений Заикин

Пользователь

Сообщений: 6
Регистрация: 28.10.2021

#23

29.10.2021 09:50:34

Большое человеческое спасибо!

Как скопировать данные с защищенного листа?

На чтение 3 мин. Просмотров 1k. Опубликовано 23.05.2021

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

Копировать данные с защищенного листа с помощью кода VBA

Копировать данные с защищенного листа с помощью поля имени

Вкладка Office Включает редактирование и просмотр с вкладками в Office и делает вашу работу намного проще …

Подробнее … Бесплатная загрузка …

Kutools for Excel решает большинство ваших проблем и увеличивает ваши Производительность на 80%.

  • Повторное использование чего угодно: добавляйте наиболее часто используемые или сложные формулы, диаграммы и все остальное в избранное и быстро используйте их в будущем.
  • Более 20 текстовых функций: извлечение числа из текстовой строки; Извлечь или удалить часть текстов; Преобразование чисел и валют в английские слова.
  • Инструменты слияния: несколько книг и листов в одну; Объединить несколько ячеек/строк/столбцов без потери данных; Объедините повторяющиеся строки и суммируйте.
  • Инструменты разделения: разделение данных на несколько листов в зависимости от значения; Из одной книги в несколько файлов Excel, PDF или CSV; Один столбец в несколько столбцов.
  • Вставить пропуск скрытых/отфильтрованных строк; Подсчет и сумма по цвету фона; Массовая отправка персонализированных писем нескольким получателям.
  • Суперфильтр: создавайте расширенные схемы фильтров и применяйте их к любым листам; Сортировать по неделе, дню, частоте и т. Д. Фильтр жирным шрифтом, формулами, комментарием …
  • Более 300 мощных функций; Работает с Office 2007-2019 и 365; Поддерживает все языки; Простое развертывание на вашем предприятии или в организации.

Подробнее … Бесплатная загрузка …

->


Копировать данные из защищенных лист с кодом VBA

Следующий простой код может помочь вам скопировать данные в активный защищенный лист, сделайте следующее:

1 . Активируйте защищенный лист, с которого вы хотите скопировать данные, а затем удерживайте клавиши ALT + F11 , чтобы открыть окно Microsoft Visual Basic для приложений , затем нажмите клавиши Ctrl + G , чтобы открыть окно Немедленное , а затем скопируйте приведенный ниже код скрипта в окно Немедленное . :

Activesheet.Cells.Select

2 . И нажмите клавишу Enter , затем вы должны нажать Ctrl + C , чтобы скопировать данные листа, а затем активировать другую книгу или новый лист, куда вы хотите вставить этот лист и поместите курсор в ячейку A1, а затем удерживайте Ctrl + V , чтобы вставить его.


Копировать данные с защищенного листа с помощью поля имени

Если вам нужно скопировать определенный диапазон данные из защитного листа, вы можете применить Name Box , чтобы завершить эту работу.

1 . Введите диапазон ячеек (D2: H13) непосредственно в поле Имя и нажмите клавишу Enter , см. Снимок экрана:

2 . После нажатия клавиши Enter , очевидно, ничего не происходит. Пожалуйста, ничего не делайте, просто нажмите Ctrl + C , чтобы скопировать конкретный диапазон, после чего вы увидите, что данные в диапазоне D2: H13 были окружены пунктирной линией, см. Снимок экрана:

3 . Затем нажмите Ctrl + V , чтобы вставить его на другой лист, где вы хотите скопировать данные.


Я защищал определенные ячейки в листе Excel без редактирования («Просмотр»> «Защищенный лист»), но при копировании листа заблокированные ячейки превращаются в незапертые ячейки, и пароль удаляется.

Я хочу скопировать лист из одной и той же книги на разные листы, а также сохранить пароль без разблокировки ячеек (редактирования) даже после копирования листа. Могу ли я сделать это, Мастера ???

Существует более одного способа копирования.

  • Если вы используете копирование и вставку для группы ячеек, защита не попадет.

  • Если щелкнуть правой кнопкой мыши вкладку с именем листа и выбрать «Копировать», вы можете скопировать весь лист в другую рабочую книгу или создать другой лист внутри текущей рабочей книги. Этот случай сохраняет защиту, означающую, что он там и с оригинальным паролем.

Пожалуйста, попробуйте это, 1. Скопируйте ячейку заблокирован / Защищенный лист.
2. Вставьте на следующий лист или любой другой лист.
3. Щелкните правой кнопкой мыши на вкладке.
4. И нажмите кнопку «Защитить лист».
5. Бинго! Вы найдете защищенные клетки как на исходном листе.

Спасибо,

как сохранить защиту

Всё ещё ищете ответ? Посмотрите другие вопросы с метками microsoft-excel microsoft-excel-2010 worksheet-function microsoft-excel-2007 cell-format.

 Как скопировать данные с защищенного листа?

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

документ копировать данные в защищенный лист 1

Скопируйте данные с защищенного листа с кодом VBA

Копирование данных с защищенного листа с помощью поля имени


стрелка синий правый пузырь Скопируйте данные с защищенного листа с кодом VBA

Следующий простой код может помочь вам скопировать данные в активный защищенный лист, сделайте следующее:

1. Активируйте защищенный лист, с которого вы хотите скопировать данные, а затем удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно, затем нажмите Ctrl + G Ключи для открытия Немедленная окно, а затем скопируйте приведенный ниже код сценария в Немедленная окна:

Activesheet.Cells.Select

документ копировать данные в защищенный лист 2

2. И нажмите Enter клавишу, затем нажмите Ctrl + C , чтобы скопировать данные листа, а затем активировать другую книгу или новый лист, куда вы хотите вставить этот лист, и поместите курсор в ячейку A1, а затем удерживайте Ctrl + V чтобы вставить его.


стрелка синий правый пузырь Копирование данных с защищенного листа с помощью поля имени

Если вам нужно скопировать определенный диапазон данных с листа защиты, вы можете применить Имя Box чтобы закончить эту работу.

1. Введите диапазон ячеек (D2: H13) в поле Имя Box напрямую и нажмите Enter ключ, см. снимок экрана:

документ копировать данные в защищенный лист 3

2. После нажатия Enter ключ, видимо ничего не происходит. Пожалуйста, ничего не делайте, просто нажмите Ctrl + C чтобы скопировать определенный диапазон, вы увидите, что данные в диапазоне D2: H13 были окружены пунктирной линией, см. снимок экрана:

документ копировать данные в защищенный лист 4

3, Затем нажмите Ctrl + V чтобы вставить его на другой лист, куда вы хотите скопировать данные.


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (27)


Оценок пока нет. Оцените первым!

Как скопировать значения с защищенного листа

maryo

Дата: Вторник, 12.06.2018, 11:24 |
Сообщение № 1

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

Уважаемые господа Программисты! У меня вопрос, как можно скопировать данные с защищенного листа только к «открытым» ячейкам другого файла? К примеру, у меня имеется файлы «Регион» и «Общий». Применял макросы но они дали ошибку — файл защищен. Ни как не смог скопировать значения листа «Сводный» файла Регион только «»открытым» ячейкам листа «Все» файла «Общий».

К сообщению приложен файл:

3848898.xlsx
(18.9 Kb)

 

Ответить

Nic70y

Дата: Вторник, 12.06.2018, 11:51 |
Сообщение № 2

Группа: Друзья

Ранг: Экселист

Сообщений: 8136


Репутация:

1999

±

Замечаний:
0% ±


Excel 2010

только к «открытым» ячейкам другого файла?

а вообще думали, когда знали?


ЮMoney 41001841029809

 

Ответить

maryo

Дата: Вторник, 12.06.2018, 12:20 |
Сообщение № 3

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

Nic70y, к «верхушке» не отправить- же файлы с формулами. Вот и суммирую по региону и этих сводных данных перекинув в пустую форму отправлю.

Сообщение отредактировал maryoВторник, 12.06.2018, 13:17

 

Ответить

StoTisteg

Дата: Вторник, 12.06.2018, 12:41 |
Сообщение № 4

Группа: Авторы

Ранг: Старожил

Сообщений: 1161


Репутация:

103

±

Замечаний:
0% ±


Excel 2010

Подсказка: LibreOffice плевать хотел на все защиты.


Интуитивно понятный код — это когда интуитивно понятно, что это код.

 

Ответить

maryo

Дата: Среда, 20.06.2018, 08:48 |
Сообщение № 5

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

Неужели никто не знает копирование значений (переброс данных без формул) в аналогичный защищенный лист файла эксель, в этом форуме ???

Сообщение отредактировал maryoСреда, 20.06.2018, 08:49

 

Ответить

_Boroda_

Дата: Среда, 20.06.2018, 09:13 |
Сообщение № 6

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Поставьте прямые ссылки. Можно даже на закрытый файл.
Например, в А1 своего листа напишите

Код

=’G:МояСтереть[3848898.xlsx]Все’!A1

, где G:МояСтереть[3848898.xlsx] — путь к тому файлу, а Все — название листа


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

SLAVICK

Дата: Среда, 20.06.2018, 09:17 |
Сообщение № 7

Группа: Модераторы

Ранг: Старожил

Сообщений: 2290


Репутация:

766

±

Замечаний:
0% ±


2019


Вам уже StoTisteg дал подсказку.
А вообще пишите формулу на незащищенном листе, в ячейку A1:

Применял макросы но они дали ошибку

макросом тоже можно — при чем макрос на одну строку…
[vba]

Код

Sheets(«Сводный»).Range(«a1:aa100»).Value = Sheets(«Куда скопировать»).Range(«a1:aa100»).Value

[/vba]


Иногда все проще чем кажется с первого взгляда.

 

Ответить

maryo

Дата: Среда, 20.06.2018, 09:21 |
Сообщение № 8

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

_Boroda_, не вставить ссылку, а просто переносить только значения со сводного в пустой лист имеющий одинаковую структуру и защищенные ячейки.
Здесь просто макрос помогает.

Сообщение отредактировал maryoСреда, 20.06.2018, 09:25

 

Ответить

maryo

Дата: Среда, 20.06.2018, 09:34 |
Сообщение № 9

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

SLAVICK, касательно LibreOffice, просто с «верхушки» отправили эксель файл. Я свои сводные данные состоящий из формул должен переносить на их ни эксель файл. А касательно макроса попробую.

Сообщение отредактировал maryoСреда, 20.06.2018, 09:35

 

Ответить

SLAVICK

Дата: Среда, 20.06.2018, 09:35 |
Сообщение № 10

Группа: Модераторы

Ранг: Старожил

Сообщений: 2290


Репутация:

766

±

Замечаний:
0% ±


2019

пустой лист …. и защищенные ячейки.

а зачем на пустом листе защита? — снимите ее.
КАК? — тут не спрашивайте — запрещено обсуждать по правилам форума — скажу только что в инете есть куча инфы по этому вопросу.

А касательно макроса попробую.

не этот макрос не поможет — он может скопировать значения С защищенного листа, но не В
Дам подсказку по подмене значений — копайте структуру файла, и xml листа:

Цитата

xlworksheetssheet1.xml


Иногда все проще чем кажется с первого взгляда.

 

Ответить

maryo

Дата: Среда, 20.06.2018, 09:37 |
Сообщение № 11

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

запрещено обсуждать по правилам форума

SLAVICK, понимаю))) спасибо..

 

Ответить

boa

Дата: Среда, 20.06.2018, 15:26 |
Сообщение № 12

Группа: Друзья

Ранг: Ветеран

Сообщений: 543


Репутация:

166

±

Замечаний:
0% ±


2013, 365

maryo, данные с защищенного листа?
да пожалуйста, хоть с закрытой книги
[vba]

Код

Option Explicit
Const Filename$ = «C:[путь к Excel’евскому файлу с данными]»

  Sub DownloadData()
    Dim sSQL$: sSQL = «select * from [Лист1$]»  ‘имя защищенного листа с данными и «$»
    Dim CON As Object: Set CON = ExcelConnect(Filename)
    Dim RST As Object: Set RST = CreateObject(«ADODB.Recordset»)
    Dim MyArr()
    RST.Open Source:=sSQL, ActiveConnection:=CON
    If Not RST.EOF Then
        With ActiveSheet
‘выгружаем все
        .Range(«A1»).CopyFromRecordset RST

‘ а можно конкретную ячейку выгрузить, например
‘        MyArr = RST.GetRows
‘        .Range(«A1») = MyArr(3, 4)  ‘4-я строка, 5-й столбец
        End With
    Else
        ‘ Если нет данных то вывод сообщения:
        MsgBox «Нет данных удовлетворяющих условиям.», vbInformation + vbOKOnly, «Ошибка»
    End If
    Set RST = Nothing
    Set CON = Nothing
End Sub

  Function ExcelConnect(ByVal PatchFile$, Optional TableHeader As Boolean = False) As Object
‘TableHeader — Отметить True, если есть заголовки у таблицы и надо к столбцам обращаться по имени,
‘ иначе к столбцам можно обращаться F1, F2, F3 и т.д.
    Dim VersionFile$
    Dim strCon$
    Select Case Split(PatchFile, «.»)(UBound(Split(PatchFile, «.»)))
        Case «xls»:  VersionFile = «Excel 8.0»
        Case «xlsb»: VersionFile = «Excel 12.0»
        Case «xlsm»: VersionFile = «Excel 12.0 Macro»
        Case «xlsx»: VersionFile = «Excel 12.0 Xml»
    End Select
    strCon = «Provider=» & IIf(Val(Application.Version) > 11, «Microsoft.ACE.OLEDB.12.0», «Microsoft.Jet.OLEDB.4.0») & «;» & _
              «Data Source=»»» & PatchFile & «»»;» & _
              «Extended Properties=»»» & VersionFile & «;HDR=» & IIf(TableHeader, «YES», «NO») & «»»;»
    Set ExcelConnect = CreateObject(«ADODB.Connection»)
    ExcelConnect.Open strCon
End Function

[/vba]


Сообщение отредактировал boaСреда, 20.06.2018, 15:47

 

Ответить

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Копировать документы microsoft word
  • Копировать данные в ячейке excel
  • Копировать высоту строк в excel
  • Копировать вырезать вставить excel
  • Копировать вставить клавишами в excel

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии