Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Сохранение данных листа в бинарный файл - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сохранение данных листа в бинарный файл (Макросы/Sub)
Сохранение данных листа в бинарный файл
Riniy Дата: Четверг, 07.12.2017, 13:33 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте!
Мне нужно макросом сохранить данные неактивного листа "Лист1" в бинарный файл.
Содержимое листа в ячейках А1:А2 примерно следующее:
:0800640040800FDFFF10006F01
:00000001FF

Пробовал таким способом, но он сохраняет в тексте
[vba]
Код
p = ActiveWorkbook.Path
    Sheets("Лист1").Copy
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs filename:=p & "\data.hex", FileFormat:=42
    ActiveWindow.Close True
[/vba]
К сообщению приложен файл: 6107041.xlsx(9Kb) · data.hex(0Kb)


Сообщение отредактировал Riniy - Четверг, 07.12.2017, 13:59
 
Ответить
СообщениеЗдравствуйте!
Мне нужно макросом сохранить данные неактивного листа "Лист1" в бинарный файл.
Содержимое листа в ячейках А1:А2 примерно следующее:
:0800640040800FDFFF10006F01
:00000001FF

Пробовал таким способом, но он сохраняет в тексте
[vba]
Код
p = ActiveWorkbook.Path
    Sheets("Лист1").Copy
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs filename:=p & "\data.hex", FileFormat:=42
    ActiveWindow.Close True
[/vba]

Автор - Riniy
Дата добавления - 07.12.2017 в 13:33
SLAVICK Дата: Четверг, 07.12.2017, 13:53 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2028
Репутация: 697 ±
Замечаний: 0% ±

2007,2010,2013,2016
FileFormat:=42

но он сохраняет в тексте

Может потому, что:
Цитата
Const xlUnicodeText = 42 (&H2A)
Member of Excel.XlFileFormat

Вы бы примеры положили - что есть, и что нужно на выходе(два файла) - может кто и поможет.


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
FileFormat:=42

но он сохраняет в тексте

Может потому, что:
Цитата
Const xlUnicodeText = 42 (&H2A)
Member of Excel.XlFileFormat

Вы бы примеры положили - что есть, и что нужно на выходе(два файла) - может кто и поможет.

Автор - SLAVICK
Дата добавления - 07.12.2017 в 13:53
Riniy Дата: Четверг, 07.12.2017, 14:01 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Приложил файлы к теме.
Это я знаю, что формат указан текст, но как сделать в бинарном виде?
 
Ответить
СообщениеПриложил файлы к теме.
Это я знаю, что формат указан текст, но как сделать в бинарном виде?

Автор - Riniy
Дата добавления - 07.12.2017 в 14:01
Riniy Дата: Четверг, 07.12.2017, 14:37 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Всем спасибо!
Методом подбора нашел то что нужно.
[vba]
Код

FileFormat:=xlTextMSDOS
[/vba]
 
Ответить
СообщениеВсем спасибо!
Методом подбора нашел то что нужно.
[vba]
Код

FileFormat:=xlTextMSDOS
[/vba]

Автор - Riniy
Дата добавления - 07.12.2017 в 14:37
Gustav Дата: Четверг, 07.12.2017, 15:16 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1475
Репутация: 559 ±
Замечаний: 0% ±

начинал с Excel 4.0...
FileFormat:=xlTextMSDOS

Это бинарный файл? Хм... мне-то показалось, что Вы хотите получить нечто следующее (на примере первой строки):
[vba]
Код
Sub toBinary()

    Dim b(1 To 13) As Byte
        
    ':0800640040800FDFFF10006F01 - 13 пар символов
    b(1) = CByte("&H" & "08")
    b(2) = CByte("&H" & "00")
    b(3) = CByte("&H" & "64")
    b(4) = CByte("&H" & "00")
    b(5) = CByte("&H" & "40")
    b(6) = CByte("&H" & "80")
    b(7) = CByte("&H" & "0F")
    b(8) = CByte("&H" & "DF")
    b(9) = CByte("&H" & "FF")
    b(10) = CByte("&H" & "10")
    b(11) = CByte("&H" & "00")
    b(12) = CByte("&H" & "6F")
    b(13) = CByte("&H" & "01")
    
    Open "C:\newBinary.hex" For Binary As #1
    Put 1, , b

End Sub
[/vba]


Мой tip box - яд 41001663842605
 
Ответить
Сообщение
FileFormat:=xlTextMSDOS

Это бинарный файл? Хм... мне-то показалось, что Вы хотите получить нечто следующее (на примере первой строки):
[vba]
Код
Sub toBinary()

    Dim b(1 To 13) As Byte
        
    ':0800640040800FDFFF10006F01 - 13 пар символов
    b(1) = CByte("&H" & "08")
    b(2) = CByte("&H" & "00")
    b(3) = CByte("&H" & "64")
    b(4) = CByte("&H" & "00")
    b(5) = CByte("&H" & "40")
    b(6) = CByte("&H" & "80")
    b(7) = CByte("&H" & "0F")
    b(8) = CByte("&H" & "DF")
    b(9) = CByte("&H" & "FF")
    b(10) = CByte("&H" & "10")
    b(11) = CByte("&H" & "00")
    b(12) = CByte("&H" & "6F")
    b(13) = CByte("&H" & "01")
    
    Open "C:\newBinary.hex" For Binary As #1
    Put 1, , b

End Sub
[/vba]

Автор - Gustav
Дата добавления - 07.12.2017 в 15:16
Riniy Дата: Четверг, 07.12.2017, 15:33 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
xlTextMSDOS это не бинарный файл.
Но он меня устраивает, т.к. не вносит в файл никаких лишних, служебных байтов, просто сохраняет как есть.
Формат чисел на листе уже собран в шестнадцатеричном формате, просто его надо было правильно сохранить.

В первой строке массив может быть больше.
Вторая фиксированная (признак конца файла)

Gustav, Спасибо за подсказку, пригодится, если буду собирать *.bin файл
 
Ответить
СообщениеxlTextMSDOS это не бинарный файл.
Но он меня устраивает, т.к. не вносит в файл никаких лишних, служебных байтов, просто сохраняет как есть.
Формат чисел на листе уже собран в шестнадцатеричном формате, просто его надо было правильно сохранить.

В первой строке массив может быть больше.
Вторая фиксированная (признак конца файла)

Gustav, Спасибо за подсказку, пригодится, если буду собирать *.bin файл

Автор - Riniy
Дата добавления - 07.12.2017 в 15:33
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сохранение данных листа в бинарный файл (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!