Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

[OLE] [Excel] Установка формата ячейки

Hello All,

всемогущий и милостивейший :)

Кто работал с Excel через OLE? помогите!

Мне нужно решить проблему для Clarion,
но и любой другой опыт. я надеюсь, поможет
(С55EE(G); WinXP,98; ExcelXP,2000)

1. Объясните вещь, плиз:
Почему

?OLE{'Cells(' & i & ',' & j+1 & ').NumberFormat'} = '"@"'
! это текстовый формат ячейки

работает, а

?OLE{'Cells(' & i & ',' & j+1 & ').NumberFormat'} = '"General"'
или
?OLE{'Cells(' & i & ',' & j+1 & ').NumberFormat'} = '"0.00"'

выдает ошибку:

OLE Automation Error
"Нельзя установить свойство NumberFormat класса Range"

2. Я хочу записать в ячейку дробное число
если делаю просто

?OLE{'Cells(' & i & ',' & j+1 & ').Value'} = YVol[m#,j]

то иногда число преобразуется в дату
вопрос - как отключить?

3. Я хочу записать в ячейку дробное число
?OLE{'Cells(' & i & ',' & j+1 & ').Value'} = YVol[m#,j]
как обеспечить распознавание числа ^^^^^^^^
как дробного числа с DecimalSeparator = "."
и автоматического приведение его к DecimalSeparator,
установленному в системе.
Т.е. чтобы из Clarion в Excel число записывалось именно как
число и именно с тем DecimalSeparator, который установлен в
системе

Вариант (ExcelXP)
?OLE{'Application.DecimalSeparator'} = '"."'
?OLE{'Application.UseSystemSeparators'} = FALSE
Не работает под Excel2000 (ну нет там таких свойств)
Пробую обойти это так:

?OLE{'Cells(' & i & ',' & j+1 & ').NumberFormat'} = '"@"'
?OLE{'Cells(' & i & ',' & j+1 & ').Value'} = YVol[m#,j]
?OLE{'Cells(' & i & ',' & j+1 & ').TextToColumns(DecimalSeparator=".")'}
?OLE{'Cells(' & i & ',' & j+1 & ').NumberFormat'} = '"General"'

но здесь проблема с NumberFormat (см. Выше)
(оставить в том виде что есть (текстовом) нельзя, так как
на его основе не строятся ChartObjects)

Посоветуйте, плиз: как надо правильно записывать в ячейки Excel
дробные числа независимо от настроек системы

СПАСИБО

Ответить   Ivan Wed, 31 Mar 2004 17:43:02 +0400 (#115854)