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

Разбивка DBF на 2 файла путем выборки поиском. Макрос Excel

25.02.2013, 09:53. Показов 5580. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Есть файл-таблица в формате .dbf (DBF-4), нужно этот файл разбить на 2 файла, произведя выборку по колонке A с помощью поиска или каким-то подобным способом. Т.е. нужно создать новую книгу Excel (новый файл), присвоить ширину колонок такую же, как в источнике, и скопировать первую строку (с заголовками столбцов).
(Но эти предварительные прелести я и макрорекордером сделал если что, так что думаю смогу добавить эту часть кода)
В файле-источнике выбрать целиком строки со значением в столбце A например таким
123456789002345*****
(имеется ввиду, что 5 символов могут быть любыми - такая критерия поиска, значения могут повторяться - всех их нужно брать) потом копируем эту строку, переходим в новую книгу Excel (новый файл, он должен создаваться этим макросом), вставляем в первую пустую строку сверху, удаляем уже скопированную строку из файла-источника. Процесс переноса должен быть именно таким, поскольку с DBF-форматом не работает Вырезка-Вставка (он оставляет строки, не удаляет их из источника). В файле-источнике может быть от 1 до примерно 1000 строк (если это важно). В итоге чтобы остался редактированный файл-источник и новый файл Excel с готовой выборкой. Желательно чтобы конечным действием макроса было окно "Сохранить как..." у нового файла с выборкой. И если важно, то Excel 2003. Пример файла-источника прилагается.
Знаю, тут была уже подобная тема, но я не смог использовать уже готовые макросы из той темы, даже подредактировать не знаю как, и по нэту искал - много находил, и все не то.
Всем заранее спасибо за ответы, буду очень благодарен!
Вложения
Тип файла: rar Example.rar (477 байт, 30 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.02.2013, 09:53
Ответы с готовыми решениями:

Выгрузка данных в dbf файл: обработка выборки запроса на сервере, запись файла - на клиенте.
Добрый день. Пишу процедуру выгрузки данных в dbf файл. Запрос выполняется НаСервере, а остальной код должен выполняться НаКлиенте....

Задача: 'прилепить' к книге Excel'я макрос программным путем
Задача: 'прилепить' к книге Excel'я макрос программным путем, имеется в виду форма с предложением ввести пароль. Пожалуйста напишите...

При попытке выборки из dbf файла - ошибка "Индекс не найден"
Добрый день! У меня приключилась такая бида.:) Подключаюсь через ADO. Если выбираю все данные, т.е. select * from SC295 то все...

4
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,707
Записей в блоге: 14
25.02.2013, 10:07
В приложении формат файла не Dbase-4, а Dbase-3. Очень невнятная постановка. Что нужно сделать? Разбросать записи из DBF по двум или более листам Excel?
1
 Аватар для RobbyStarr
2 / 2 / 0
Регистрация: 12.07.2011
Сообщений: 32
25.02.2013, 11:40  [ТС]
Странно, я его в DBF4 сохранял (через Excel).
Нет, тут не по листам нужно разбить, а на два файла. Из файла-источника берем нужные строки (как описано выше - методом поиска значения 123456789002345***** в столбце A) и переносим эти найденные строки в новый созданный файл (для себя назовем его "выборка"), но переносим именно копированием-вставкой-удалением из источника. Остальные строки, не вошедшие в критерии выборки остаются в файле-источнике, с ними ничего не делаем. Таким образом то и получится разбивка на 2 файла.
0
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
25.02.2013, 22:32
DBF файл открыт в 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
29
30
31
32
Sub Sheet2Files()
    Dim shSrc As Worksheet, rCol1 As Range, c As Range, rColN As Range
    Dim cl As New Collection, pth$
    Dim a(), b()
    
    Set shSrc = ActiveSheet
    pth = ActiveWorkbook.Path & "\" 'путь сохранения файлов
    Set rCol1 = shSrc.UsedRange.Columns(1)
    Set rCol1 = rCol1.Cells(2).Resize(rCol1.Cells.Count - 1) 'первый столбец без заголовка
    a = rCol1
    Set rColN = rCol1.Offset(, shSrc.UsedRange.Columns.Count)
    rColN = 2
    b = rColN
    For i = LBound(a, 1) To UBound(a, 1)
        If a(i, 1) Like "123456789002345?????" Then b(i, 1) = 1
    Next
    rColN = b
    On Error Resume Next
    For Each c In rColN.Cells
        cl.Add 0, CStr(c.Value)
        If Err Then
            Err.Clear
        Else
            shSrc.Copy      'в новую книгу
                            'удалить строки с несовпадающим последним столбцом
            ActiveSheet.Range(rColN.Address).ColumnDifferences(c).EntireRow.Delete
            ActiveSheet.Range(rColN.Address).ClearContents
            ActiveWorkbook.Close True, pth & c & " файл" 'закрыть с сохранением
        End If
    Next
    rColN.ClearContents
End Sub
Вложения
Тип файла: xls Example.xls (43.5 Кб, 61 просмотров)
1
 Аватар для RobbyStarr
2 / 2 / 0
Регистрация: 12.07.2011
Сообщений: 32
26.02.2013, 04:31  [ТС]
Всем спасибо за ответы!

toiai, В коде ничего не понял что там происходит, но все работает замечательно!!! Хоть и маленько не так, как я хотел, но это по-моему к лучшему Огроменное спасибо!!! Жму руку!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.02.2013, 04:31
Помогаю со студенческими работами здесь

Создание выборки из Excel-файла
Добрый день! Такой вопрос возник. Есть exel файл по данным которого необходимо сделать выборку c помощью матлаб по нескольким условиям и...

Excel и чтение dbf файла.
Доброго времени суток! Есть кучка дбф файлов, (одни сутки - один файл), в Екселе сделана некая табличка которая должна при выборе даты...

Макрос для экспорта из excel файла в excel файл шаблон
здравствуйте. подскажите как написать макрос. есть 1 файл со столбиками : город , дом, квартира, итд куча строк есть 2й файл с...

Пересохранение DBF файла в формате *.xls (MS EXCEL)
Здраствуйте. Мне необходимо преобразовать существующий DBF файл в таблицу EXCEL. Если я получаю данные из DBF файла в DataTable и потом...

Как сделать выборку записей из файла DBF на лист Excel?
Добрый день! Помогите пожалуйста, сделать выборку записей из файла DBF на лист Excel. Найденный мной здесь код Set Db =...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru