Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование, связанное с MS Office > Автопреобразование типов...


Автор: Maverick 9.3.2004, 20:01
Фишь в следующем.... делается выдача в Excell из форматированного текстового файла... специфика предприятия - в некоторых полях встречаются выражения типа "16-01/98".... именно так - строка, на что бравый Excell реагирует немедленно, переводит в тип TDate, а при переводе в String обратно получаем в ячейке значение типа 37765. Перерыл все настройки, не нашел, где отключить эту гадость.... Подскажите, плиз.... Причем, если через ODBC делать, то этого не происходит.... Но файлы всегда разные, непредсказуемые, поэтому не подходит....

Автор: Kesh 10.3.2004, 13:58
Попробуй перед вставляемым значением поставить апостроф т.е. 16-01/98 передавать как '16-01/98 - это учсуд воспримет как строку, а асам апостроф показывать не будет...

Автор: Maverick 11.3.2004, 10:44
Дело в том, что прога покупная.... и без исходников... и влезть туда невозможно.... но в текстовом файле данные как раз и представлены в таком виде.... правда, в кавычках....

Примерно так....
"4799/166";200;3
"2813/166";200;3
"16-01/98";200;3

Вот она его формирует сначала, а потом открывает Excel и загоняет его туда....

То есть, в принципе показывает, что текст.... причем если ручками открывать через все эти вопросы с типами, знаками и тп, то все нормально... или через ODBC, я уже говорил, тоже нормально...

PS. Долго вспоминал, что такое учсуд пока сам не написал в другом регистре это слово.... smile.gif

Автор: Kesh 11.3.2004, 16:51
Цитата(Maverick @ 11.3.2004, 07:44)
PS. Долго вспоминал, что такое учсуд пока сам не написал в другом регистре это слово.... smile.gif

biggrin.gif

Надо подумать...

Автор: Staruha 30.5.2004, 20:54
А что нельзя разве формат ячеек задать?

Автор: Guest 4.6.2004, 09:27
2старуха - конечно нет, я как понял програ эта каждый раз новый файл стряпает

Автор: Staruha 5.6.2004, 09:36
Двойку принимаю .Ну я ведь только спросила.Когда нибудь я ее исправлю.

Автор: Guest 5.10.2004, 15:28
Кто там мне 2 поставил Вот:

Код
Dim oSheet As Excel.Worksheet
With oSheet.Range("A1", "A10000")
        .NumberFormat = "dd/mm/yy"
        .VerticalAlignment = xlVAlignCenter
     End With

Старуха

Автор: Desdichado 4.11.2004, 15:04
Цитата(Guest @ 5.10.2004, 15:28)
Кто там мне 2 поставил Вот:

Dim oSheet As Excel.Worksheet
With oSheet.Range("A1", "A10000")
        .NumberFormat = "dd/mm/yy"
        .VerticalAlignment = xlVAlignCenter
     End With
Старуха

Молодец, вместо 2 надо ставить 5 smile

Автор: Staruha 5.11.2004, 21:38
Ура!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)