Страница 1 из 2
Способ считать количество символов в ячейке Excel
Добавлено: 06 окт 2005, 10:08
Avsha
Хотелось бы иметь быстрый способ определения количества символов в ячейке,
подобный тому как определяется сумма, среднее и т.д. для выбранного диапазона в статусной строке внизу справа.
Например, выбрал ячейку, нажал кнопку, выдало сколько символов в текстовой строке ячейки.
Есть ли для этого какой стандартный механизм или функция в Excel?
Вариант с функцией ДЛСТР - понятен, но несколько долговат.
Добавлено: 07 окт 2005, 22:28
Naeel Maqsudov
Стандартного нет.
Только макрос
Код: Выделить всё
sub macro1()
on error resume next
msgbox len(activecell)
end sub
с горячей клавишей на нем
Добавлено: 08 окт 2005, 15:31
Avsha
Отличное решение !!!
полностью меня устраивает.
вытащил кнопку на панель управления, привязал ваш макрос, но ...
куда поместить макрос чтобы он работал для разных книг Excel,
а то так он выполняется только для одной книги Excel, где был создан?
Добавлено: 08 окт 2005, 16:57
pashulka
А как насчёт рабочей книги PERSONAL.XLS ...
Добавлено: 09 окт 2005, 08:12
Avsha
Спасибо, 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, где можно почитать?
Добавлено: 09 окт 2005, 15:48
pashulka
Avsha, Могу предложить ещё один вариант.
Найдите рабочую книгу 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
Затем создайте модуль класса - Class1 и скопируйте :
Код: Выделить всё
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
Теперь, при следующем запуске MS Excel (если Вы конечно сохранили изменения в личной книге макросов) Вам будет достаточно выделить ячейку или диапазон ячеек и кликнуть правой кнопкой мышки.
Примечание : На самом деле можно использовать ~ любую рабочую книгу. Для этого её достаточно расположить в стандартной или альтернативной папке автозагрузки.
Стандартной является папка XLSTART, которая в
MS Excel 97 располагается, как правило - \Program Files\Microsoft Office\Office\XLStart
Альтернативную папку автозагрузки можно выбрать самому (меню
Сервис - команда
Параметры - закладка
Общие - поле
Каталог автозагрузки )
Также можно использовать надстройки (.xla)
При желании, эту рабочую книгу (.xls) можно сделать скрытой (меню
Окно - команда
Скрыть )
P.S. Что касается литературы, то это вопрос не ко мне ...
Добавлено: 10 окт 2005, 08:46
Avsha
pashulka,
использование контекстного меню - ну это вообще высший пилотаж,
спасибо, мне понравилось ваше решение.
А главное, какая открывается дорога по предоставлению других информационных функций.
Добавлено: 10 окт 2005, 09:41
Avsha
Добавлено: 20 окт 2006, 16:18
s2dent
А еслиБ Вы сказали, как сделать так, чтоб колличество символов считалось в ячейке с помощью формулы - Вам бы цены не было!
Т.е. у меня есть название "Яблочный сок 0,2" - в нём содержится 16символов (включая пробелы). Есть ли формула, которая подсчитает это колличество автоматом в соседней ячейке?
Добавлено: 20 окт 2006, 17:36
Pavel55
=ДЛСТР(ссылка на ячейку)