Метод Range() возвращает странную строку

Программирование на Visual Basic for Applications
LevelUP
Новичок
Новичок
 
Сообщения: 32
Зарегистрирован: 08.09.2005 (Чт) 5:05

Метод Range() возвращает странную строку

Сообщение LevelUP » 22.06.2007 (Пт) 6:49

Друзья, помогите пожалуйста. Пишу макрос под Excel. Столкнулся с тем что метод Range(), который раньше никогда не подводил возвращает мне "644010 line", тогда как в ячейке, находится нормальная строка. Единственно на что грешу это шрифт ячеек OfficinaSerifCTT. Но отображается же он нормально на листе книги Excel, а взять программно не получается

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 22.06.2007 (Пт) 7:16

Может быть увидим код?
Весь мир матрица, а мы в нем потоки байтов!

LevelUP
Новичок
Новичок
 
Сообщения: 32
Зарегистрирован: 08.09.2005 (Чт) 5:05

Сообщение LevelUP » 22.06.2007 (Пт) 7:21

Код элементарен

i=0
do
i=i+1
MsgBox Worksheets("Лист1").Range("a" & i)

'условие выхода из цикла

loop

LevelUP
Новичок
Новичок
 
Сообщения: 32
Зарегистрирован: 08.09.2005 (Чт) 5:05

Сообщение LevelUP » 22.06.2007 (Пт) 7:33

Уточню, при анализе не распознается кирилица например Слово "Телефон" распознается как "Oaeaoii". "Омск" как "Line" и т.п. тем самым нет возможности анализировать строки программно.
При этом на листе книги все выглядит красиво, но сверху в строке формулы отображается тоже коряво.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 22.06.2007 (Пт) 7:37

Это кривой шрифт.
Поставь нормальный и перекодируй содержимое.
Lasciate ogni speranza, voi ch'entrate.

LevelUP
Новичок
Новичок
 
Сообщения: 32
Зарегистрирован: 08.09.2005 (Чт) 5:05

Сообщение LevelUP » 22.06.2007 (Пт) 7:47

Этот файл я получил скопировав содержимое из pdf-файла. После этом у меня были кракозябры везде, включая отображение на листе. Но затем я закачал необходимый шрифт, используемый в том pdf, поставил его в ОС, и стало отображаться нормально на листе. Теперь вопрос в том чтобы если это корявый шрифт, где взять такой же OfficinaSerifCTT но не корявый, может ссылки какие можете дать для закачки, ведь как я понимаю перекодировать в другой заведомо нормальный стандартный шрифт напримеh в Arial из этого OfficinaSerifCTT невозможно

anvg
Обычный пользователь
Обычный пользователь
 
Сообщения: 66
Зарегистрирован: 20.05.2007 (Вс) 18:04

Сообщение anvg » 22.06.2007 (Пт) 7:55

LevelUP
Попробуй сохранить в Adober Reader как текст свой pdf и уже его разбирать

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 22.06.2007 (Пт) 8:33

LevelUP, помоему ты не понял ни слова из того, что я сказал.
Шрифт OfficinaSerifCTT - кривой, не используй его. В этом шрифте вместо латинской буквы "O" нарисована кириллическая буква "Т", а вместо латинской буквы "L" нарисована кириллическая буква "О". Реально же в твоем XLS-файле именно белиберда и написана, такая как "Oaeaoii" и "Line", просто визуально она отображается, как кириллический текст.
Если срочно надо, что составь таблицу соответствий и перекодируй текст в читаемые слова, после чего выбери нормальный шрифт.
Lasciate ogni speranza, voi ch'entrate.

LevelUP
Новичок
Новичок
 
Сообщения: 32
Зарегистрирован: 08.09.2005 (Чт) 5:05

Сообщение LevelUP » 22.06.2007 (Пт) 9:31

alibekТеперь понятно, что подразумевается под словом перекодировать. Муторно это, проще принять формат этого шрифта и условия сравнения при разборе строк делать именно с последовательностью таких иероглифов. Благо у меня таких условий и нахожедний кириллически подстрок немного (в основном искать необходимо числа).
Большое спасибо!


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 102

    TopList  
cron