Хотелось бы иметь быстрый способ определения количества символов в ячейке,
подобный тому как определяется сумма, среднее и т.д. для выбранного диапазона в статусной строке внизу справа.
Например, выбрал ячейку, нажал кнопку, выдало сколько символов в текстовой строке ячейки.
Есть ли для этого какой стандартный механизм или функция в Excel?
Вариант с функцией ДЛСТР - понятен, но несколько долговат.
Способ считать количество символов в ячейке Excel
Модератор: Naeel Maqsudov
- Naeel Maqsudov
- Сообщения: 2551
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Стандартного нет.
Только макрос
с горячей клавишей на нем
Только макрос
Код: Выделить всё
sub macro1()
on error resume next
msgbox len(activecell)
end sub
Отличное решение !!!
полностью меня устраивает.
вытащил кнопку на панель управления, привязал ваш макрос, но ...
куда поместить макрос чтобы он работал для разных книг Excel,
а то так он выполняется только для одной книги Excel, где был создан?
полностью меня устраивает.
вытащил кнопку на панель управления, привязал ваш макрос, но ...
куда поместить макрос чтобы он работал для разных книг Excel,
а то так он выполняется только для одной книги Excel, где был создан?
А как насчёт рабочей книги PERSONAL.XLS ...
Спасибо, pashulka,
Ваш совет как всегда приводит к успеху.
Что у меня получилось:
1. Записываем макрос Сервис\Макрос\Начать Запись...\
При этом выбираем место сохранения макроса "Личная книга макросов"
2. В результате в среде Excel появляется скрытая книга PERSONAL.XLS,
доступная из всех других книг, с которыми работает пользователь.
Она кстати сохраняется в пути C:\Documents and Settings\User_01\Application Data\Microsoft\Excel\XLSTART
и очевидно может переноситься от одного пользователя к другому (или на другой ПК) простым копированием.
3. Теперь добавляем наш макрос в модуль PERSONAL.XLS
sub macro1()
on error resume next
msgbox len(activecell)
end sub
4. В конце создаем кнопку на новой панели инструментов Настраиваемая1, и привязываем кнопку к макросу PERSONAL.XLS!macro1
Не нашел только в справке ни слова про личную книгу макросов PERSONAL.XLS, где можно почитать?
Ваш совет как всегда приводит к успеху.
Что у меня получилось:
1. Записываем макрос Сервис\Макрос\Начать Запись...\
При этом выбираем место сохранения макроса "Личная книга макросов"
2. В результате в среде Excel появляется скрытая книга PERSONAL.XLS,
доступная из всех других книг, с которыми работает пользователь.
Она кстати сохраняется в пути C:\Documents and Settings\User_01\Application Data\Microsoft\Excel\XLSTART
и очевидно может переноситься от одного пользователя к другому (или на другой ПК) простым копированием.
3. Теперь добавляем наш макрос в модуль PERSONAL.XLS
sub macro1()
on error resume next
msgbox len(activecell)
end sub
4. В конце создаем кнопку на новой панели инструментов Настраиваемая1, и привязываем кнопку к макросу PERSONAL.XLS!macro1
Не нашел только в справке ни слова про личную книгу макросов PERSONAL.XLS, где можно почитать?
Avsha, Могу предложить ещё один вариант.
Найдите рабочую книгу PERSONAL.XLS, перейдите в модуль ThisWorkbook (ЭтаКнига) и скопируйте туда этот код :
Затем создайте модуль класса - Class1 и скопируйте :
Теперь, при следующем запуске MS Excel (если Вы конечно сохранили изменения в личной книге макросов) Вам будет достаточно выделить ячейку или диапазон ячеек и кликнуть правой кнопкой мышки.
Примечание : На самом деле можно использовать ~ любую рабочую книгу. Для этого её достаточно расположить в стандартной или альтернативной папке автозагрузки.
Стандартной является папка XLSTART, которая в MS Excel 97 располагается, как правило - \Program Files\Microsoft Office\Office\XLStart
Альтернативную папку автозагрузки можно выбрать самому (меню Сервис - команда Параметры - закладка Общие - поле Каталог автозагрузки )
Также можно использовать надстройки (.xla)
При желании, эту рабочую книгу (.xls) можно сделать скрытой (меню Окно - команда Скрыть )
P.S. Что касается литературы, то это вопрос не ко мне ...
Найдите рабочую книгу PERSONAL.XLS, перейдите в модуль ThisWorkbook (ЭтаКнига) и скопируйте туда этот код :
Код: Выделить всё
Dim Cls As New Class1
Private Sub Workbook_Open()
With Application.CommandBars("Cell").Controls.Add _
(Type:=msoControlEdit, Temporary:=True)
.BeginGroup = True
.Style = msoButtonIcon
.Caption = "Кол-во символов"
End With
Set Cls.xlApp = Application
End Sub
Код: Выделить всё
Public WithEvents xlApp As Application
Private Sub xlApp_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Excel.Range, Cancel As Boolean)
iCount = Evaluate("Sum(Len(" & Target.Address & "))")
Application.CommandBars("Cell").Controls("Кол-во символов").Text = _
IIf(IsError(iCount), "Ошибка", iCount)
End Sub
Примечание : На самом деле можно использовать ~ любую рабочую книгу. Для этого её достаточно расположить в стандартной или альтернативной папке автозагрузки.
Стандартной является папка XLSTART, которая в MS Excel 97 располагается, как правило - \Program Files\Microsoft Office\Office\XLStart
Альтернативную папку автозагрузки можно выбрать самому (меню Сервис - команда Параметры - закладка Общие - поле Каталог автозагрузки )
Также можно использовать надстройки (.xla)
При желании, эту рабочую книгу (.xls) можно сделать скрытой (меню Окно - команда Скрыть )
P.S. Что касается литературы, то это вопрос не ко мне ...
pashulka,
использование контекстного меню - ну это вообще высший пилотаж,
спасибо, мне понравилось ваше решение.
А главное, какая открывается дорога по предоставлению других информационных функций.
использование контекстного меню - ну это вообще высший пилотаж,
спасибо, мне понравилось ваше решение.
А главное, какая открывается дорога по предоставлению других информационных функций.
Наткнулся на хорошие ресурсы по VBA, делюсь:
http://www.microsoft.ru/offext/developers/
http://www.vbstreets.ru/VBA/default.aspx
http://www.microsoft.ru/offext/developers/
http://www.vbstreets.ru/VBA/default.aspx
А еслиБ Вы сказали, как сделать так, чтоб колличество символов считалось в ячейке с помощью формулы - Вам бы цены не было!
Т.е. у меня есть название "Яблочный сок 0,2" - в нём содержится 16символов (включая пробелы). Есть ли формула, которая подсчитает это колличество автоматом в соседней ячейке?
Т.е. у меня есть название "Яблочный сок 0,2" - в нём содержится 16символов (включая пробелы). Есть ли формула, которая подсчитает это колличество автоматом в соседней ячейке?
=ДЛСТР(ссылка на ячейку)