Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Мастер текста в Excel

1.3K
29 апреля 2003 года
IKor
116 / / 04.12.2002
Господа!
Одним из решений стоящей передо мной задачи (суть, суть которой, на мой взгдляд, пока не существенна) является использование возможностей мастера текста, а именно разбиение данных на ячейки фиксированной ширины.
После копирования данных из внешнего (html) файла на странице в Excel создается один столбец ячеек. Однако, по смыслу он должен быть разбит на несколько (всякий раз по-разному) столбцов фиксированной ширины.
Я точно знаю, что Excel имеет такую возможность, которая реализована при открытии текстового файла при помощи мастера текстов. Однако, я не хочу сохранять результаты копирования в текстовый файл, т.к. при этом пропадает важная для меня цветовая информация.
По всей видимости, подобный механизм может быть реализован средствами VBA, однако, моих возможностей не хватает для этого.
Help me pls!
258
29 апреля 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by IKor
Господа!
Одним из решений стоящей передо мной задачи (суть, суть которой, на мой взгдляд, пока не существенна) является использование возможностей мастера текста, а именно разбиение данных на ячейки фиксированной ширины.
После копирования данных из внешнего (html) файла на странице в Excel создается один столбец ячеек. Однако, по смыслу он должен быть разбит на несколько (всякий раз по-разному) столбцов фиксированной ширины.
Я точно знаю, что Excel имеет такую возможность, которая реализована при открытии текстового файла при помощи мастера текстов. Однако, я не хочу сохранять результаты копирования в текстовый файл, т.к. при этом пропадает важная для меня цветовая информация.
По всей видимости, подобный механизм может быть реализован средствами VBA, однако, моих возможностей не хватает для этого.
Help me pls!



Все что ты выбираешь в мастере импорта текстовых файлов реализуется через следующую функцию: Application.Workbooks.OpenText

В твоем случае (для разбиения текста в столбце) надо использовать: Selection.TextToColumns - работает почти также

Справка там подробная, правда некоторые моменты могут вызвать трудности, я например целый день разбирался с параметром FieldInfo из Workbooks.OpenText , чтобы он правильно работал.. :-(

1.3K
29 апреля 2003 года
IKor
116 / / 04.12.2002
Цитата:
Originally posted by SergeySV


Справка там подробная, правда некоторые моменты могут вызвать трудности, я например целый день разбирался с параметром FieldInfo из Workbooks.OpenText , чтобы он правильно работал.. :-(



Спасибо за пояснение!
Но мне пока с трудом удаются простые функции в VBA - не говоря уже о тонкостях, с которыми зубры Visual Basik разбираются целыми днями!!!
А нет ли решения по проще?

258
29 апреля 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by IKor


Спасибо за пояснение!
Но мне пока с трудом удаются простые функции в VBA - не говоря уже о тонкостях, с которыми зубры Visual Basik разбираются целыми днями!!!
А нет ли решения по проще?



Зубры это к Cutty Sark :)

Функция есть функция, все равно с какой-нибудь придется разбираться и с этой обязательно все получиться ...

Ну уж если хочется по-другому, то я вижу только пока самый тупой вариант, все делать самому, вручную, т.е.:
1. Добавить пустые столбцы, куда тебе надо.
2. Считать значение из ячейки.
3. Проанализировать, разбить его на несколько строк. переменных (с помощью left, mid, InStк и пр.)
4. Присвоить ячейке каждого из столбца нужный кусок.
5. Опуститься на строку ниже и все повторить (с п. 2) теперь уже для этой ячейки.

Не знаю, что для тебя будет проще .... (:)-)

1.3K
29 апреля 2003 года
IKor
116 / / 04.12.2002
Цитата:
Originally posted by SergeySV


Не знаю, что для тебя будет проще .... (:)-)



Действительно, простое решение - самое лучшее!
Символы в строке разделены пробелами - и сумма символов и пробелов во всех ячейках одинакова!
Т.е. легко можно растащить ячейку на отдельные символы, при этом сохранится соответствие столбцов!
Единственное - не совпадает цветовая палитра (некоторые символы в ячейке выделяются красным или серым цветом), но с этим уже ничего не поделаешь!
Спасибо за совет, если придет в голову мысль как можно автоматизировать распознание цвета отдельного символа в ячейке, напиши, пожалуйста!

258
30 апреля 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by IKor

Спасибо за совет, если придет в голову мысль как можно автоматизировать распознание цвета отдельного символа в ячейке, напиши, пожалуйста!



Для этого можно использовать следующее свойство объекта Range:

Worksheets("Sheet1").Range("B1").Characters(5, 5).Font.(Color/ColorIndex/ и т.д.)

Т.е. объект Characters возвращает указанное число символов из ячейки и позволяет устанавливать/просматривать их формат: цвет, шрифт, жирность и т.д.

267
02 мая 2003 года
Cutty Sark
1.2K / / 17.10.2002
Ну вот, стоит приболеть на три дня, как сразу столько интересного. :)

Так на чем остановилась дискуссия? С TextToColumns я работал, так что могу подсказать, если еще надо...
1.3K
02 мая 2003 года
IKor
116 / / 04.12.2002
Цитата:
Originally posted by Cutty Sark
Ну вот, стоит приболеть на три дня, как сразу столько интересного. :)

Так на чем остановилась дискуссия? С TextToColumns я работал, так что могу подсказать, если еще надо...



Я рад, чтоты поправился!
Надо, то надо, но пока, я считаю, что проще поправить ручками несколько циферок, чем разбираться с новым для меня VBA.
Однако, если дело дойдет до передачи файла другим людям, то, видимо, придется доводить его до ума...

Я не знаю, чем вызвана моя боязнь VBA (хотя прошло уже достаточно много времени):
- то ли, моим нежеланием тратить на это свое время (ведь одними вашими советами сыт не будешь - тут надо самому землю рыть...);
- то ли отвращением, которое я испытываю к предупреждению о безопасности при открытии файла с макросами (я знаю как его отключить!);
- то ли желанием использовать богатство стандартных возможностей Excel - а оно достаточно велико;
- несмотря на то, что я постоянно натыкаюсь на его границы, и мне приходится думать и спрашивать советов как решить проблему подручными средствами;

До сих пор мне удавалось решить большинство вопросов средствами Excel; конечно, не так красиво, как это могло бы выглядеть в VBA, но тем не менее удачно.

Еще раз благодарю всех за помощь.
Буду рад любым высказываниям и предложениям в рамках этой темы.

267
02 мая 2003 года
Cutty Sark
1.2K / / 17.10.2002
Конечно, написать требуемое в рамках Экселя - это приятно и красиво, и не стоит по любому поводу городить макрос, но если простой очевидный макрос заменяет этакого "крокодила" из десятка встроенных функций - почему нет?

А по поводу защиты - я ее отключил. 99,9% общаюсь со своими собственными макросами, поэтому она мне и не нужна. А оставшиеся 0,01% можно и Касперским предпровериться... 8)

Да, кстати, при открытии хтмл-файла в 97-м и 2000-м Экселе результат может существенно отличаться - сам неоднократно с этим сталкивался. Об этом тоже лучше помнить.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог