Аналог функций в Excel CLng(CDate(S1))?

Программирование на Visual Basic for Applications
sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Аналог функций в Excel CLng(CDate(S1))?

Сообщение sonata » 20.05.2003 (Вт) 17:04

CLng(CDate(S1))- это VBA функции
а как вызвать эти ф-и прямо из ячейки Excel?

SergeySV
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 124
Зарегистрирован: 17.04.2003 (Чт) 14:39
Откуда: Россия, Москва

Re: Аналог функций в Excel CLng(CDate(S1))?

Сообщение SergeySV » 20.05.2003 (Вт) 17:22

sonata писал(а):CLng(CDate(S1))- это VBA функции
а как вызвать эти ф-и прямо из ячейки Excel?


Не совсем понятно, откуда вызвать? Имеется ввиду не прибегая к VBA, написать эти функции в ячейку?

Наоборот можно сделать. Использовать в VBA функции Excel.
Главное двигаться не быстрее, чем думает твоя голова.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 21.05.2003 (Ср) 9:38

Если S1 - это ячейка, где содержится дата в формате даты, то вызов будет такой:
= ЗНАЧЕН(S1)

Если в S1 не дата, а число, тогда такой:
= S1 :)

Ну а если там строка (представляющая собой число, но строка, например "23456"), или же дата в виде строки (например, "21.05.2003", это именно строка) то тогда, опять-таки, такой:
= ЗНАЧЕН(S1)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Сообщение sonata » 21.05.2003 (Ср) 11:36

Вы очень правильно заметили...
Там строка (представляющая собой число, но строка, например "23456"), или же дата в виде строки (например, "21.05.2003", это именно строка) то тогда, опять-таки, такой:
= ЗНАЧЕН(S1)

Я прилагаю файл, где данная формула не работает..., см малиновые ячейки в нем
Вложения
Пообъект_помощь.zip
(4.7 Кб) Скачиваний: 141

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 23.05.2003 (Пт) 9:52

Я в шоке! В полном! Окончательно!!! :shock: :shock: :shock:

Sonata... что, собственно, нужно получить :?:

Там делается попытка прибавить к числовому выражению даты число 455... Нафига? Но в любом случае... Дата там в виде даты, а не в виде строки! Хотя это и неважно. А важно то, что если к числу присобачить число при помощи конкатенации (а там именно при помощи конкатенации), то получится строка, строка, строка!!! :)
Оператор конкатенации в Экселе - &

Так всё-таки, что должно получиться?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

SergeySV
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 124
Зарегистрирован: 17.04.2003 (Чт) 14:39
Откуда: Россия, Москва

Сообщение SergeySV » 23.05.2003 (Пт) 10:24

GSerg писал(а): А важно то, что если к числу присобачить число при помощи конкатенации (а там именно при помощи конкатенации), то получится строка, строка, строка!!! :)
Оператор конкатенации в Экселе - &


В этом нет ничего удивительного. В VBA присутствует скрытое преобразование типов при использовании - & в строковую перемен..

Где-то здесь на форуме видел пример такого преобразования:
dim i as integer, s as string
s="ля-ля"
i=5
s=s & i

получим в результате: s="ля-ля5"
Главное двигаться не быстрее, чем думает твоя голова.

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 23.05.2003 (Пт) 10:35

2sonata: может скажешь ЧТО тебе надо получить и из каких данных А :?:
чесно говоря сам вопрос не совсем понятен :!:

sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Сообщение sonata » 23.05.2003 (Пт) 15:35

Ну не знаю, что непонятного я спросила...
Есть столбец с Датой(формат которого я меняла по-разному:текст,дата,общий) и столбец с номером(т.е. число),
мне нужно было их объединить в одну ячейку через пробел,
но в результате, как Вы говорите,знака & ,
получается сложение. Но почему дата преобразовывается в числовой тип Excel?А не остается в формате дата?

SergeySV
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 124
Зарегистрирован: 17.04.2003 (Чт) 14:39
Откуда: Россия, Москва

Сообщение SergeySV » 23.05.2003 (Пт) 16:03

sonata писал(а):Ну не знаю, что непонятного я спросила...
Есть столбец с Датой(формат которого я меняла по-разному:текст,дата,общий) и столбец с номером(т.е. число),
мне нужно было их объединить в одну ячейку через пробел,
но в результате, как Вы говорите,знака & ,
получается сложение. Но почему дата преобразовывается в числовой тип Excel?А не остается в формате дата?


Непонятно как они должны быть объединены...

Т.е. взять дату (причем именно в том формате как она выглядит в ячейке) и через пробел добавить номер и все это сохранить как текст?

Если да, то чтобы не мудрствовать, можно сделать:
1. Формат ячейки с датой задай в виде даты (как тебе нужно, например: 01.03.02 или 01.03.2003 или еще как)
2. в VBA есть у ячейки Range замечательное свойство .Text - по нему можно получить значение ячейки в текстовом виде, абсолютно так как он выглядит на экране.
3. Потом к этому можно спокойно добавлять номер/число и негемороится.

Оформи это как функцию и используй ее выбрав среди пользовательских функции в Excel.
Главное двигаться не быстрее, чем думает твоя голова.


Вернуться в VBA

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

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

    TopList