Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Превратить формат ячейки в значение - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Превратить формат ячейки в значение (Макросы Sub)
Превратить формат ячейки в значение
mlader Дата: Вторник, 18.02.2014, 14:27 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 4 ±
Замечаний: 20% ±

Excel 2007
Здравствуйте!

В файле часть сотрудников выделена курсивом, часть - нет.
Мне необходима функция, которая бы возвращала значение "1" или "0" в ячейку напротив в зависимости от того, каков формат ячейки-аргумента (курсив или не курсив).

Текст, который я написал:

[vba]
Код
Function КУРСИВ(cl)
Dim k As Integer
Dim n As Integer
k = 1
n = 0
If Range("cl").Font.Italic = True Then
k
Else: n
End Function
[/vba]

Видимо, неправильна часть: If Range("cl").Font.Italic = True
Но как её сделать правильно - не могу сообразить.
К сообщению приложен файл: 9855830.xlsm (14.3 Kb)


Сообщение отредактировал Serge_007 - Вторник, 18.02.2014, 21:15
 
Ответить
СообщениеЗдравствуйте!

В файле часть сотрудников выделена курсивом, часть - нет.
Мне необходима функция, которая бы возвращала значение "1" или "0" в ячейку напротив в зависимости от того, каков формат ячейки-аргумента (курсив или не курсив).

Текст, который я написал:

[vba]
Код
Function КУРСИВ(cl)
Dim k As Integer
Dim n As Integer
k = 1
n = 0
If Range("cl").Font.Italic = True Then
k
Else: n
End Function
[/vba]

Видимо, неправильна часть: If Range("cl").Font.Italic = True
Но как её сделать правильно - не могу сообразить.

Автор - mlader
Дата добавления - 18.02.2014 в 14:27
Wowick Дата: Вторник, 18.02.2014, 14:40 | Сообщение № 2
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 5 ±
Замечаний: 0% ±

Excel 2010
То, что в кавычках, ексель считает текстом. Я бы начал с этого...
Опять же, что ча оператор
[code]k[/code]?
 
Ответить
СообщениеТо, что в кавычках, ексель считает текстом. Я бы начал с этого...
Опять же, что ча оператор
[code]k[/code]?

Автор - Wowick
Дата добавления - 18.02.2014 в 14:40
_Boroda_ Дата: Вторник, 18.02.2014, 15:09 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
[vba]
Код
Function КУРСИВ(cl)
Dim k As Integer
Dim n As Integer
k = 1
n = 0
If Range(cl.Address).Font.Italic = True Then
      КУРСИВ = k
Else:
      КУРСИВ = n
End If
End Function
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение[vba]
Код
Function КУРСИВ(cl)
Dim k As Integer
Dim n As Integer
k = 1
n = 0
If Range(cl.Address).Font.Italic = True Then
      КУРСИВ = k
Else:
      КУРСИВ = n
End If
End Function
[/vba]

Автор - _Boroda_
Дата добавления - 18.02.2014 в 15:09
Wowick Дата: Вторник, 18.02.2014, 15:20 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 5 ±
Замечаний: 0% ±

Excel 2010
Борода, я тока учусь ВБА, есть вопросы по тексту:
Зачем дополнительные переменные k, n можно ведь сразу функцию курсив объявить тип integer и по условию возвращать в функции либо 0, либо 1.
И зачем строка:
Код
aa=cl
?
 
Ответить
СообщениеБорода, я тока учусь ВБА, есть вопросы по тексту:
Зачем дополнительные переменные k, n можно ведь сразу функцию курсив объявить тип integer и по условию возвращать в функции либо 0, либо 1.
И зачем строка:
Код
aa=cl
?

Автор - Wowick
Дата добавления - 18.02.2014 в 15:20
_Boroda_ Дата: Вторник, 18.02.2014, 15:45 | Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
aa=cl просто затесалась случайно. Конечно не нужна она.
И переменные не нужны, можно все гораздо проще сделать. А почему я не переделал - я же не знаю, вдруг у человека есть какой-то тайный смысл именно в таком написании? Я просто подправил, фактически не меняя логику.
Можно вообще так написать
[vba]
Код
Function КУРСИВ(cl)
Randomize
КУРСИВ = -Range(cl.Address).Font.Italic
End Function
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщениеaa=cl просто затесалась случайно. Конечно не нужна она.
И переменные не нужны, можно все гораздо проще сделать. А почему я не переделал - я же не знаю, вдруг у человека есть какой-то тайный смысл именно в таком написании? Я просто подправил, фактически не меняя логику.
Можно вообще так написать
[vba]
Код
Function КУРСИВ(cl)
Randomize
КУРСИВ = -Range(cl.Address).Font.Italic
End Function
[/vba]

Автор - _Boroda_
Дата добавления - 18.02.2014 в 15:45
ikki Дата: Вторник, 18.02.2014, 15:52 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
а Randomize зачем?


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениеа Randomize зачем?

Автор - ikki
Дата добавления - 18.02.2014 в 15:52
_Boroda_ Дата: Вторник, 18.02.2014, 16:03 | Сообщение № 7
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А тоже от другого макроса остался. Просто я сегодня ночью спал 80 минут. Все сегодня путаю


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА тоже от другого макроса остался. Просто я сегодня ночью спал 80 минут. Все сегодня путаю

Автор - _Boroda_
Дата добавления - 18.02.2014 в 16:03
mlader Дата: Вторник, 18.02.2014, 17:51 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 4 ±
Замечаний: 20% ±

Excel 2007
Слава умам ёкселя!

_Boroda_, спасибо большое.

Тайной логики никакой нет, это первое, что попытался сделать на ВБА. :-))
 
Ответить
СообщениеСлава умам ёкселя!

_Boroda_, спасибо большое.

Тайной логики никакой нет, это первое, что попытался сделать на ВБА. :-))

Автор - mlader
Дата добавления - 18.02.2014 в 17:51
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Превратить формат ячейки в значение (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!