Последние записи
- Рандомное слайдшоу
- Событие для произвольной области внутри TImage
- Удаление папки с файлами
- Распечатка файла
- Преобразовать массив байт в вещественное число (single)
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
19th
Дек
Макрос импорта Ексель файлов из папки в листы одной книги с последующим выполнения макросов
Posted by obzor under VBA
Сбор макросом рабочих листов из внешних Excel файлов с последующим выполнением другого макроса-научите, пожалуйста. Использую прекрасный макрос с форума,-спасибо Форуму-Учителю. Макрос умеет открывать много файлов в одну книгу-подшивку; рабочие листы при этом именуются по имени файлов.
Подскажите, пожалуйста, есть ли макрос который бы ВЫПОЛНЯЛСЯ при открытии-вставке, импорте файлов в листы. То есть, что нужно добавить в пропись макроса, чтобы, например, пустые строки в импортируемых файлах удалялись сразу же или в момент вставки файла-таблицы. Все внешние файлы состоять из одной, хотя и большой, таблицы, в которой встречаются пустые элементы или строки.
Вы не указали, все листы выбранных книг нужно копировать или нет. Сколько их, и как при этом называть создаваемые листы.
Пусть, например, все открываемые книги имеют 1 лист. Тогда скопировать их в одну книгу, присвоить имя согласно имени файла и удалить пустые строки можно так:
Sub CombineWorkbooks()
Dim wb As Workbook, Nm As String, i As Integer, j As Long
Application.ScreenUpdating = False: Application.DisplayAlerts = False
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = True: .Title = "Files to Merge": .Show
If .SelectedItems.Count = 0 Then Exit Sub
For i = 1 To .SelectedItems.Count
Set wb = Workbooks.Open(Filename:=.SelectedItems(i))
Nm = Replace(wb.Name, ".xls", "")
On Error Resume Next: ThisWorkbook.Sheets(Nm).Delete: On Error GoTo 0
ActiveSheet.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
ActiveSheet.Name = Nm: wb.Close False
With ActiveSheet.UsedRange
For j = .Row + .Rows.Count - 1 To 1 Step -1
If Rows(j).Text = "" Then Rows(j).Delete
Next: End With: Next: End With
End Sub
Пример файла во вложении. Если такой лист уже существует, то он будет обновлен.
Sub DelRows()
Application.ScreenUpdating = False: On Error Resume Next
ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Случайные статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)