![]() |
![]() |
![]() |
|
Вытащить дату и время из ячейки Дата-время Excell | ☑ | ||
---|---|---|---|---|
0
YF
03.04.08
✎
08:49
|
В Excell в ячейке содержится дата-время.
При попытке взять оттуда значение методом: Значение=Excel.Workbooks(1).Sheets(1).Cells(1, 1).Value; Сообщить(Строка(Значение), "i"); Берется только дата. Как бы взять еще и время? |
|||
1
dk
03.04.08
✎
08:53
|
С каких пор в 7-ке в дате стало время храниться? :)
--- в Excel отформатировать дату в строку и в 7-ке разобрать строку |
|||
2
YF
03.04.08
✎
08:59
|
(1) А как это сделать через ОЛЕ?
|
|||
3
dk
03.04.08
✎
09:04
|
Excel.Str(Excel.Workbooks(1).Sheets(1).Cells(1, 1).Value)
может так? не помню как вызываются функции по OLE |
|||
4
YF
03.04.08
✎
11:09
|
Не знаю, как преобразовать к строке в Экселе, поэтому:
Перед чтением меняю формат на основной и потом читаю значение. Однако дата-время 09.09.2007 9:21:29 читается как число 39334,3899189815. Как из этого числа вытащить время и дату? С датой вроде так: Дата("01.01.1900") + 39334 - 2 = 09.09.07 А как время взять? |
|||
5
smaharbA
03.04.08
✎
11:23
|
.text
|
|||
6
YF
03.04.08
✎
11:26
|
(5) Классно, че блин, я до такого раньше не знал.
Сыпасиба. |
|||
7
dk
03.04.08
✎
11:26
|
(5) А если там формат без часов? :)
|
|||
8
smaharbA
03.04.08
✎
11:30
|
(7) .Value(12)
|
|||
9
dk
03.04.08
✎
11:32
|
(8) А как все таки функцию вычислить по OLE?
Пробовал app.run(Str(1)), app.worksheetfunction.str(1) - нифига не работает |
|||
10
sapphire
03.04.08
✎
11:37
|
(4) А зачем такой гемор? само по себе значение неинтересно понеже есмь число, егда можно использовать
Значение=Excel.Workbooks(1).Sheets(1).Cells(1, 1).Value; // число Значение=Excel.Workbooks(1).Sheets(1).Cells(1, 1).Text; // стока 09.09.20079:21:29 |
|||
11
FN
03.04.08
✎
12:05
|
Я лично делаю так сначала назначаю ячейке формат ДД.ММ.ГГГГ - через .Text получаю только дату, потом назначаю ячейке формат ЧЧ:ММ и также получаю только время
(4) Делаю так, потому что могут быть разные региональные форматы и дата может выглядеть по разному при общем формате |
|||
12
smaharbA
03.04.08
✎
12:20
|
.Text(c.Value, "dd.mm.yyyy hh:mm:ss")
|
|||
13
smaharbA
03.04.08
✎
12:20
|
(11) на региональные наплевать, просто делать надо правильно
|
|||
14
YF
03.04.08
✎
14:02
|
(12) А как этот метод применять?
|
|||
15
dk
03.04.08
✎
14:14
|
(12) угу, спасибо
(14) ДатаСтрокой = Excel.worksheetfunction.Text(Excel.Workbooks(1).Sheets(1).Cells(1, 1).Value, "dd.mm.yyyy hh:mm:ss") |
|||
16
smaharbA
03.04.08
✎
14:13
|
Сообщить(Ексель.WorkSheetFunction.Text(ЯчейкаНеЗначениеАРанж,"dd.mm.yyyy hh:mm:ss"))
хотя в адинеске может иначе придется |
|||
17
YF
03.04.08
✎
14:44
|
(16) Понял, сыпасиба
|
|||
18
YF
03.04.08
✎
15:04
|
(16) А может в Экселе есть возможнось выяснить количество строк, а то сейчас для этого использую АДО?
|
|||
19
YF
03.04.08
✎
15:10
|
+
(18) Уже не актуально, подсмотрел в Считывание данных с Ексельки |
|||
20
smaharbA
03.04.08
✎
15:12
|
(19) обломаешься, потом репу будешь чясать
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |