Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2010, 17:56   #1
bukarenko
 
Регистрация: 06.08.2009
Сообщений: 3
По умолчанию Подсчет количества слов на листе

Доброго времени суток.
Возникла следующая задача: необходимо подсчитать количество пробелов на листе Excel. Проблема в том, что использовать свойство ячейки Characters и перебирать все символы в ячейке в поисках пробела невозможно, т.к. это будет занимать непозволительно много времени.
Буду очень благодарен, если кто-то подскажет более быстрый способ.
bukarenko вне форума Ответить с цитированием
Старый 31.03.2010, 18:35   #2
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

=СЧЁТЕСЛИ(A1:A2;"*"&" "&"*") - подсчитать количество ячеек содержащих пробелы.

Количество всех пробелов - хз) надо подумать.

Чем перебор то не устраивает? попьете чай минут 10)
Dophin вне форума Ответить с цитированием
Старый 31.03.2010, 19:00   #3
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Я думаю это самый шустрый способ

Код:

Sub Chet()
Dim n, m, k As Long
Dim Txt As String
On Error Resume Next
 Kill ("C:\Test.txt")
    ActiveSheet.SaveAs Filename:= _
        "C:\Test.txt", FileFormat:= _
        xlTextMSDOS, CreateBackup:=False
        
      Set oFSO = CreateObject("Scripting.FileSystemObject")
       Txt = oFSO.OpenTextFile("C:\Test.txt", 1, False).readall
        n = Len(Txt)
         Txt = Replace(Txt, " ", "")
         m = Len(Txt)
         k = n - m
        MsgBox "Всего пробелов - " & k
        Set oFSO = Nothing
       
        
End Sub
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 31.03.2010 в 20:05.
doober вне форума Ответить с цитированием
Старый 01.04.2010, 07:10   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Можно попробовать и без создания текстового файла.
копируем данные в буфер обмена: ActiveSheet.usedrange.copy
считываем из буфера в текстовую переменную
считаем пробелы методом Txt = Replace(Txt, " ", "")
EducatedFool вне форума Ответить с цитированием
Старый 01.04.2010, 12:30   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
Подсчет количества слов на листе
Цитата:
необходимо подсчитать количество пробелов на листе Excel
Вообще-то, это разные задачи. Если ячейки Excel содержат по несколько пробелов, идущих подряд, то можно воспользоваться функцией
Код:
Txt = Application.Trim(Txt)
Но!!! Если ячейки Excel содержат пробелы слева (справа), то при формировании текстовой строки появятся "лишние" пробелы, которые невозможно будет удалить вышеупомянутой функцией. Т.е. в этом случае, для подсчета слов на листе Excel такой метод будет возвращать ошибочный результат.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчет количества числовых значений Amelie_L Microsoft Office Excel 2 28.01.2010 08:26
Подсчет количества слов предложении Милашка000 Общие вопросы C/C++ 2 24.04.2009 20:02
Подсчет количества открытий файла Maxx Microsoft Office Excel 6 27.01.2009 16:53
Подсчет общего количества студентов NikolayGVB Microsoft Office Excel 4 19.01.2009 19:10
Подсчет количества и частоты Ensoph Помощь студентам 6 08.05.2008 10:16