Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/54: Рейтинг темы: голосов - 54, средняя оценка - 4.81
0 / 0 / 0
Регистрация: 23.12.2019
Сообщений: 6
Excel

Копирование конкретных ячеек из закрытой книги

15.01.2020, 22:02. Показов 10452. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Нужна Ваша помощь, вообщем я нашел макрос в интернете который копирует данные из закрытой книги, но он получается копирует диапазон, а мне надо, чтобы копировал нужные мне ячейки ("A3","C5","H4", G8"). Я его не много переделал, вот что получилось:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub Копировать_ИЗ()
    Dim sShName As String, sAddress As String, vData
    Dim objCloseBook As Object
    'Отключаем обновление экрана
    Application.ScreenUpdating = False
    Set objCloseBook = GetObject("D:\Сюда.xlsm")
    vData = objCloseBook.Sheets("Поиск").Range("A3","C5","H4", "G8").Value
    objCloseBook.Close False
    If IsArray(vData) Then
        Sheets("Лист1").Range("A3","C5","H4", "G8").Resize(UBound(vData, 1), UBound(vData, 2)).Value = vData
    Else
        Sheets("Поиск").Range("A3","C5","H4", "G8") = vData
    End If
    Application.ScreenUpdating = True
End Sub
Но когда я прописываю в макросе вот так:
Visual Basic
1
..Range("A3","C5")
то он копирует, а когда так:
Visual Basic
1
.Range("A3","C5","H4", "G8")
Как сделать так, чтобы он копировал вот эти ячейки ("A3","C5","H4", "G8")???
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.01.2020, 22:02
Ответы с готовыми решениями:

Копирование данных из закрытой книги
Добрый день, уважаемые форумчане. Помогите советом. Мне нужно скопировать все данные из столбца закрытой книги Excel, которая лежит на...

Копирование из закрытой книги по условию
доброго времени! Есть макрос для копирования строк из закрытых книг в сводный отчет: Sub CopyStr() Dim path As String, file As...

копирование значений листа с закрытой книги
Подскажите пожалуйста, как можно скопировать лист не сохраняя формат листа (объединенные ячейки, цвета, границы таблицы и т.п.), а просто...

7
11 / 7 / 4
Регистрация: 12.01.2020
Сообщений: 41
16.01.2020, 08:13
Лучший ответ Сообщение было отмечено Lerik31 как решение

Решение

Lerik31,

Попробуйте так:
Visual Basic
1
.Range("A3, C5, H4, G8").Value
0
109 / 60 / 27
Регистрация: 22.02.2018
Сообщений: 189
16.01.2020, 09:30
Lerik31, как вариант, что бы макрос отработал 4 раза по 1 ячейке, но это будет дольше, зато можно передавать в макрос нужные ячейки для копирования.

или забирать 1 диапазон в который включены все данные и из них получать уже только нужные ячейки
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub Копировать_ИЗ()
    Dim sShName As String, sAddress As String, vData
    Dim objCloseBook As Object
    'Отключаем обновление экрана
    Application.ScreenUpdating = False
    Set objCloseBook = GetObject("D:\Сюда.xlsm")
    vData = objCloseBook.Sheets("Поиск").Range("A3", "H8").Value
    objCloseBook.Close False
    With Sheets("Лист1")
        .Range("A3") = vData(1, 1)
        .Range("C5") = vData(3, 3)
        .Range("H4") = vData(2, 8)
        .Range("G8") = vData(6, 7)
    End With
    Application.ScreenUpdating = True
End Sub
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38177 / 21112 / 4307
Регистрация: 12.02.2012
Сообщений: 34,716
Записей в блоге: 14
16.01.2020, 09:34
Лучший ответ Сообщение было отмечено Lerik31 как решение

Решение

Цитата Сообщение от Lerik31 Посмотреть сообщение
копирует данные из закрытой книги
Цитата Сообщение от Aleksan7 Посмотреть сообщение
Set objCloseBook = GetObject("D:\Сюда.xlsm")
- это, по-твоему, "закрытая книга" ?
0
109 / 60 / 27
Регистрация: 22.02.2018
Сообщений: 189
16.01.2020, 10:17
Catstail,
я менял лишь рейнж. скорее всего автор подразумевает: закрытая книга = которую не вижу и не открываю вручную
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38177 / 21112 / 4307
Регистрация: 12.02.2012
Сообщений: 34,716
Записей в блоге: 14
16.01.2020, 10:27
Лучший ответ Сообщение было отмечено Lerik31 как решение

Решение

Aleksan7, а в чем тогда разница в программной логике обработки открытой и "закрытой" книги?
0
109 / 60 / 27
Регистрация: 22.02.2018
Сообщений: 189
16.01.2020, 10:46
Catstail, никакой разницы

Lerik31, что бы не путаться с адресами массива, по каждой ячейке можно
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Копировать_ИЗ()
    Dim objCloseBook As Object
    'Отключаем обновление экрана
    Application.ScreenUpdating = False
    Set objCloseBook = GetObject("D:\Сюда.xlsm")
    With Sheets("Лист1")
        .Range("A3") = objCloseBook.Sheets("Поиск").Range("A3").Value
        .Range("C5") = objCloseBook.Sheets("Поиск").Range("C5").Value
        .Range("H4") = objCloseBook.Sheets("Поиск").Range("H4").Value
        .Range("G8") = objCloseBook.Sheets("Поиск").Range("G8").Value
    End With
    objCloseBook.Close False
    Application.ScreenUpdating = True
End Sub
1
0 / 0 / 0
Регистрация: 23.12.2019
Сообщений: 6
16.01.2020, 12:23  [ТС]
Aleksan7, Огромнейшее Вам спасибо!!!
Catstail, этот код я брал, вот здесь https://www.excel-vba.ru/chto-... toj-knigi/, поэтому и я назвал тему из закрытой книги.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.01.2020, 12:23
Помогаю со студенческими работами здесь

Копирование листа из закрытой книги в открытую
Добрые люди, пофиксите макрос, чтобы он запускался с панели инструментов для открытой книги... Sub nununu() Const fromFile =...

Копирование листов закрытой книги в открытую
Добрий день! Есть макрос которий копирует в активную книгу лист1 и лист2 с книги города.xls в активной книге есть лист 380ddmmyy....

Друзья! не работает код с версией файла в 2003 офисе, на 2010 все работает, суть: копирование из закрытой книги
Sub Zagruzka_dannyh() UserForm1.Label117.Visible = False UserForm1.Image48.Visible = False Location = "T:\Rik\PS\ЛПА\Выдача...

Друзья! не работает код с версией файла в 2003 офисе, на 2010 все работает, суть: копирование из закрытой книги
Sub Zagruzka_dannyh() UserForm1.Label117.Visible = False UserForm1.Image48.Visible = False Location = "T:\Rik\PS\ЛПА\Выдача...

Копирование ячеек из книги excel в таблицу access
Здравствуйте. Подскажите, пожалуйста, как с помощью vba скопировать ячейки из книги excel в таблицу access. и можно ли подключить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru