Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
10 / 0 / 2
Регистрация: 29.01.2013
Сообщений: 85

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

18.01.2015, 19:22. Показов 5005. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, уважаемые форумчане.
Помогите советом. Мне нужно скопировать все данные из столбца закрытой книги Excel, которая лежит на сетевом диске в режиме общего доступа в открытую книгу (в ней запускаю макрос).

Я использую следующий алгоритм:
1) открываю книгу на сетевом диске;
2) устанавливаю курсор на первую ячейку столбца;
3) определяю количество заполненных ячеек в столбце;
4) начинай по одной ячейке копировать данные в открытую книгу (т.к. не просто копирую, а еще и объединения данных из разных столбцов произвожу);
5) Закрываю книгу, которую открыл.

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

Вопрос - как реализовать такой алгоритм без физического открытия Книги Excel?

Кусок кода:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Public Sub TasksLoadFromReg()
Dim strTask As String, i As Integer, j As Integer, RowsCount As Integer, RowsCountStatus As Integer
 
Sheets("DB_Tasks").Select
RowsCountStatus = Cells(Rows.Count, 1).End(xlUp).Row
Workbooks.Open Filename:="e:\Работа\Temp\Реестр_задач_новый_1.1.xlsm"
j = 1
 
Workbooks("Реестр_задач_новый_1.1.xlsm").Worksheets("Tasks_Тв").Activate
Sheets("Tasks_Тв").Select
RowsCount = Cells(Rows.Count, 2).End(xlUp).Row
 
For i = 3 To RowsCount
    Workbooks("Реестр_задач_новый_1.1.xlsm").Worksheets("Tasks_Тв").Activate
    Sheets("Tasks_Тв").Select
 
    Range("B3").Select
    strTask = Cells(i, 2) & " | " & Cells(i, 4) & " | " & Cells(i, 5) & " | " & Cells(i, 11)
    Workbooks("!Статус_v1.0.xlsm").Worksheets("DB_Tasks").Activate
    
    Cells(RowsCountStatus + j, 1) = "m" & j
    Cells(RowsCountStatus + j, 2) = "m0"
    Cells(RowsCountStatus + j, 3) = strTask
    j = j + 1
Next i
 
Workbooks("Реестр_задач_новый_1.1.xlsm").Close
End Sub
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.01.2015, 19:22
Ответы с готовыми решениями:

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

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

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

6
12 / 12 / 2
Регистрация: 30.10.2013
Сообщений: 46
18.01.2015, 19:52
А что если подставить
Visual Basic
1
2
3
Application.DisplayAlerts = false
ВАШ КОД
Application.DisplayALerts = true
0
 Аватар для kalbasiatka
416 / 263 / 83
Регистрация: 27.10.2012
Сообщений: 861
18.01.2015, 20:51
Сохранить книгу перед закрытием
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Public Sub TasksLoadFromReg()
    Dim strTask$
    Dim i%, j%, RowsCount%, RowsCountStatus%
    Application.ScreenUpdating = False
    RowsCountStatus = Sheets("DB_Tasks").Cells(Rows.Count, 1).End(xlUp).Row
    Workbooks.Open Filename:="e:\Работа\Temp\Реестр_задач_новый_1.1.xlsm"
    With ActiveWorkbook
        With .Sheets("Tasks_Тв")
            RowsCount = .Cells(Rows.Count, 2).End(xlUp).Row
            j = 1
            For i = 3 To RowsCount
                strTask = .Cells(i, 2) & " | " & .Cells(i, 4) & " | " & .Cells(i, 5) & " | " & .Cells(i, 11)
                With ThisWorkbook.Worksheets("DB_Tasks")
                    .Cells(RowsCountStatus + j, 1) = "m" & j
                    .Cells(RowsCountStatus + j, 2) = "m0"
                    .Cells(RowsCountStatus + j, 3) = strTask
                End With
                j = j + 1
            Next
        End With
        .Save
        .Close True
    End With
    Application.ScreenUpdating = True
    Beep
End Sub
0
10 / 0 / 2
Регистрация: 29.01.2013
Сообщений: 85
18.01.2015, 21:37  [ТС]
kalbasiatka, можно уточнить? В вашем предложении в строке кода 13
Visual Basic
1
With ThisWorkbook.Worksheets("DB_Tasks")
это действие с открываемой книгой? Я так понимаю, что да, а мне нужно скопировать в книгу из которой запускается макрос.

И еще в строчке 21 кода .save - это сохранение изменений в книге. А как ее не сохранять после закрытия?
0
 Аватар для kalbasiatka
416 / 263 / 83
Регистрация: 27.10.2012
Сообщений: 861
18.01.2015, 21:48
Цитата Сообщение от Kontugenyi Посмотреть сообщение
это действие с открываемой книгой?
А проверить ну никак нельзя?
Это действие с книгой в которой находится этот макрос, она вроде как была уже открыта.

Добавлено через 1 минуту
Цитата Сообщение от Kontugenyi Посмотреть сообщение
А как ее не сохранять после закрытия?
Visual Basic
1
2
 .Save 'сохранить
 .Close True 'закрыть
и не перепутать!
1
12 / 12 / 2
Регистрация: 30.10.2013
Сообщений: 46
18.01.2015, 22:12
Чтобы закрыть книгу без сохранений дописываем метод закрыть:
Visual Basic
1
.Close SaveChanges:=False
1
10 / 0 / 2
Регистрация: 29.01.2013
Сообщений: 85
18.01.2015, 22:43  [ТС]
Всем спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.01.2015, 22:43
Помогаю со студенческими работами здесь

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

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

Друзья! не работает код с версией файла в 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\ЛПА\Выдача...

Запуск макроса из закрытой книги
Здравствуйте Гуру VBA! Может эта тема уже и поднималась. Я по крайней мере не нашел ответа. Проблема такая! На диске n: лежит файл...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
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 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru