View previous topic :: View next topic |
Author |
Message |
vla
Joined: 15 Mar 2005 Posts: 60 Location: Гаклин Владимир Ильич Occupation: ООО БэстСиб, консультант Interests: Новосибирск
|
Posted: 22 Jun 2007 10:23 Post subject: Как определить формат ячейки с датой в Excel |
|
|
Пытаюсь вывести дату в Excel:
oAS:Cells(x,y):Value:=OemToAnsi(dtoc(xdat))
Если определить формат как
oAS:Cells(x,y):NumberFormat:="@"
- выводится числом.
Как задать формат для даты - нигде не нашел.
Записал в макрос перевод числа в дату и подсмотрел определение: Selection.NumberFormat = "dd/mm/yy;@"
и вставил себе.
Но при попытке использовать конструкцию типа
oAS:Cells(x,y):NumberFormat:="dd/mm/yy;@" - Excel ругается на ошибку выполнения, и нечитаемо. Понятно только ... NumberFormat ... Range. |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 22 Jun 2007 12:12 Post subject: |
|
|
Давайте по порядку.
Сделаем программу с отладчиком.
Дойдем до нужной строки.
Дальше переключимся в нижнее поле и напишем там
?oAs:Cells......и так далее
Смотрим что возвращает отладчик
Дальше пробуем добавить например :Value()
И в отладчике смотрим что и как и находим причину как будет работать а как нет |
|
Back to top |
|
|
Марина
Joined: 27 Aug 2002 Posts: 501 Location: Кондрина Марина Александровна Occupation: ОАО БКО программист Interests: Боровичи Новгородской обл
|
Posted: 22 Jun 2007 12:28 Post subject: |
|
|
Попробуйте ...Value:=dtoc(xdat), а NumberFormat просто не задава |
|
Back to top |
|
|
Плешивцев Евгений
Joined: 03 Apr 2007 Posts: 95 Location: Плешивцев Евгений
Interests: Волгоград
|
Posted: 22 Jun 2007 14:59 Post subject: |
|
|
как сказала Марина, так и надо. У меня такая же конструкция:
Code: | oAS:Cells(nLine,1):Value:=nNum
oAS:Cells(nLine,1):NumberFormat:="#0"
oAS:Cells(nLine,2):Value:=OemToAnsi(Contract->NameAgent)
oAS:Cells(nLine,2):NumberFormat:="@"
oAS:Cells(nLine,3):Value:= nOst
oAS:Cells(nLine,3):NumberFormat:="# ##0.00"
oAS:Cells(nLine,4):Value:=dtoc(dDatV)
oAS:Cells(nLine,5):Value:=dtoc(dDat2)
oAS:Cells(nLine,6):FormulaR1C1:="=RC[-1]-RC[-2]+1"
oAS:Cells(nLine,6):NumberFormat:="#0"
oAS:Cells(nLine,7):FormulaR1C1:=OemToAnsi("=(RC[-4]*RC[-1])/ДЕНЬ(RC[-2])")
oAS:Cells(nLine,7):NumberFormat:="# ##0.00" |
|
|
Back to top |
|
|
Марина
Joined: 27 Aug 2002 Posts: 501 Location: Кондрина Марина Александровна Occupation: ОАО БКО программист Interests: Боровичи Новгородской обл
|
Posted: 22 Jun 2007 16:22 Post subject: |
|
|
Евгений, а такая странная запись FormulaR1C1, RC[-4] это примерно как понять? Никогда такого не видела |
|
Back to top |
|
|
Плешивцев Евгений
Joined: 03 Apr 2007 Posts: 95 Location: Плешивцев Евгений
Interests: Волгоград
|
Posted: 22 Jun 2007 16:42 Post subject: |
|
|
это вот так:
а нужно для упрощения получения адреса клетки. Например:
Code: | oAS:Cells(nLine,6):FormulaR1C1:="=RC[-1]-RC[-2]+1" |
это значит что я стою на какой то линии nLine, на 6 колонке и в эту клетку помещаю формулу:
|
|
Back to top |
|
|
|