VBA: функции для работы с файлами
Введение Работа с дисками и папками, путь CurDir — текущая папка ChDrive — смена логического диска ChDir — смена папки Dir — список файлов/папок Name — переименование MkDir — создание папки RmDir — удаление папки Kill — удаление файла SetAttr — установка атрибутов
Одной из важнейших составляющих любого языка программирования является способность считывать и записывать информацию из файлов. Стандартно это называется функциями низкого уровня (Low Level) и в полном объеме представлено в VBA. Кстати, именно эта особенность и является основой опасности макросов.
С другой стороны, в свете изучаемого курса, нельзя не отметить, что обсуждаемые возможности относятся далеко не к начальному уровню. Без них не удастся обойтись при автоматизации взаимодействия со сложной информацией из разнородных источников.
Доступ к этим материалам предоставляется только зарегистрированным пользователям!


Как сделать активной книгу excel vba?
- Параметр Len, задаваемый при открытии файла, играет ключевую роль. Во-первых, длина записи не может его превышать. Во-вторых, если запись меньше, то она дополняется пробелами до размера Len.
- Если записываемая переменная является строкой переменной длины, оператор Put записывает 2-байтовый дескриптор c длиной строки, а затем переменную. То есть длина записи, указанная предложением Len в операторе Open, должна быть по крайней мере на 2 больше, чем фактическая длина строки записываемых данных.
- Если записываемая переменная имеет числовой подтип Variant, оператор Put записывает дополнительно 2 байта, указывающие на тип. См. п.2.
- Если записываемая переменная имеет строковый подтип Variant, оператор Put записывает дополнительно 2 байта, указывающие на тип и еще 2 — на длину. Соответственно, значение Len должно быть увеличено на 4.
- Если записываемая переменная является динамическим массивом пользовательского типа, Put записывает дескриптор, длина которого равна 2 плюс в 8 раз больше числа измерений, то есть 2 + 8 * число измерений. То есть, для одномерного массива — 10 (2+8*1), для двумерного — 18 (2+8*2) и т.д. Плюс размер массива, описать который нормально сотрудники Microsoft не удосужились.
- Если записываемая переменная является массивом фиксированного размера, оператор Put записывает только данные, без дескриптора.
- При любом другом типе переменной все также, как и в п.6.
Это один вариант связи Excel – Access…
А можно связывать Access – Excel находясь в проекте Access!
А вообще, включите фантазию…
Что бы Вы хотели от программы?
Как она должна работать, чтобы максимально экономить Ваше время?
И напишите мне… Обсудим…
Атрибуты:
Константа | Значение | Описание |
vbNormal | 0 | Без атрибутов (по умолчанию) |
vbReadOnly | 1 | Только для чтения (Read-only) |
vbHidden | 2 | Скрытый файл (Hidden) |
vbSystem | 4 | Системный файл (System) |
vbArchive | 32 | Файл изменен после последнего резервного копирования |
Об автоматизации MS Office…
Это один вариант связи Excel – Access…
А можно связывать Access – Excel находясь в проекте Access!
А вообще, включите фантазию…
Что бы Вы хотели от программы?
Как она должна работать, чтобы максимально экономить Ваше время?
И напишите мне… Обсудим…
Принцип один: Все что делает человек по определенным правилам (алгоритму) можно запрограммировать и поручить машине… .

VBA Excel. «Копирование данных с выбранного листа открытой книги Excel в определенную таблицу заданной базы данных (БД) Access» Использование макросов (код VBA)
- выбрать нужную книгу из списка всех открытых книг Excel;
- выбрать нужный лист из списка листов этой книги;
- выбрать нужную таблицу БД для копирования данных (полный путь к самой БД определен в ячейке А2 данной книги, а проверка пути проводится при открытии главной формы)
- настроить список колонок для копирования данных (после этой операции в выбранной книге Excel появится лист «Настроенные_колонки_ИмяЛиста_ИмяТаблицы» (или «NR_ИмяЛиста_ИмяТаблицы») содержащий в одной строке список полей таблицы БД, а в нижележащей строке номера колонок). При этом сама книга и лист с данными могут изменяться в течение времени (накопление данных), но если расположение колонок не поменялось, то можно вторично использовать настройки с листа «NR_ИмяЛиста_ИмяТаблицы».
Ну, я старался изо всех сил, чтобы предоставить наилучшие возможные способы автоматической передачи данных с одного листа Excel на другой. Итак, с этого момента вы не можете нужно беспокоиться о как автоматически копировать данные из одной ячейки в другую в Excel.
Третий способ самый эффективный и наиболее автоматизированный — это использование меню надстройки «Power Query».
Правда нужно отметить, что этот способ подходит только пользователям Excel 2016 и пользователям Excel 2013и выше с установленной надстройкой «Power Query».
Смысл способа в следующем:
Необходимо открыть вкладку «Power Query». В разделе «Данные Excel» нажимаем кнопку (пиктограмму) «Из таблицы».
Из таблицы -Power Query
Далее нужно выбрать диапазон ячеек, из которых нужно «притянуть» информацию и нажимаем «Ок».
Источник данных для запроса Power Query
После выбора области данных появится окно настройки вида новой таблицы. В этом окне Вы можете настроить последовательность вывода столбцов и удалить ненужные столбцы.
После настройки вида таблицы нажмите кнопку «Закрыть и загрузить»
Обновление полученной таблицы происходит кликом правой кнопки мыши по названию нужного запроса в правой части листа (список «Запросы книги»). После клика правой кнопкой мыши в выпадающем контекстном меню следует нажать на пункт «Обновить»
Обновление запроса в PowerQuery

5 различных методов переноса данных с одного листа Excel на другой
Логика изложения основана на том, что можно сделать с существующими объектами, а уже потом — как создать новый. Поскольку многие команды распространяются не только на работу с каталогами, но и на файлы, полное изложение приводится именно здесь.