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

Вход

Регистрация

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

 

= Мир MS Excel/Подсчет количества формул во всей книге - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Подсчет количества формул во всей книге (Как подсчитать количество формул)
Подсчет количества формул во всей книге
MaestroSVK Дата: Четверг, 17.04.2014, 08:34 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Добрый день, подскажите, пожалуйста, как с помощью VBA подсчитать количество уникальных формул, содержащихся во всей книге. Спасибо!
 
Ответить
СообщениеДобрый день, подскажите, пожалуйста, как с помощью VBA подсчитать количество уникальных формул, содержащихся во всей книге. Спасибо!

Автор - MaestroSVK
Дата добавления - 17.04.2014 в 08:34
anvg Дата: Пятница, 18.04.2014, 06:21 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Добрый день
Вариант для листа, не всё допилено, но в принципе, если не считать наличия в формулах текста, содержащего буквы или цифры заканчивающиеся без пробела скобкой "(", то должно работать.
[vba]
Код

Public Function GetSheetFormulaCount(ByVal this As Worksheet) As Long
     Dim pReg As Object, pDict As Object, pItems As Object
     Dim formulaRange As Range, pCell As Range, pItem As Object
     Set pReg = CreateObject("VBScript.RegExp")
     pReg.Global = True: pReg.IgnoreCase = True
     pReg.Pattern = "[a-zà-ÿ¸0-9]\("
     Set pDict = CreateObject("Scripting.Dictionary")
     pDict.CompareMode = VbCompareMethod.vbTextCompare
     Set formulaRange = this.UsedRange.SpecialCells(xlCellTypeFormulas)
     If Not formulaRange Is Nothing Then
         For Each pCell In formulaRange
             Set pItems = pReg.Execute(pCell.Formula)
             If pItems.Count > 0 Then
                 For Each pItem In pItems
                     pDict(pItem.Value) = Empty
                 Next
             End If
         Next
     End If
     GetSheetFormulaCount = pDict.Count
End Function
[/vba]
Успехов
 
Ответить
СообщениеДобрый день
Вариант для листа, не всё допилено, но в принципе, если не считать наличия в формулах текста, содержащего буквы или цифры заканчивающиеся без пробела скобкой "(", то должно работать.
[vba]
Код

Public Function GetSheetFormulaCount(ByVal this As Worksheet) As Long
     Dim pReg As Object, pDict As Object, pItems As Object
     Dim formulaRange As Range, pCell As Range, pItem As Object
     Set pReg = CreateObject("VBScript.RegExp")
     pReg.Global = True: pReg.IgnoreCase = True
     pReg.Pattern = "[a-zà-ÿ¸0-9]\("
     Set pDict = CreateObject("Scripting.Dictionary")
     pDict.CompareMode = VbCompareMethod.vbTextCompare
     Set formulaRange = this.UsedRange.SpecialCells(xlCellTypeFormulas)
     If Not formulaRange Is Nothing Then
         For Each pCell In formulaRange
             Set pItems = pReg.Execute(pCell.Formula)
             If pItems.Count > 0 Then
                 For Each pItem In pItems
                     pDict(pItem.Value) = Empty
                 Next
             End If
         Next
     End If
     GetSheetFormulaCount = pDict.Count
End Function
[/vba]
Успехов

Автор - anvg
Дата добавления - 18.04.2014 в 06:21
MaestroSVK Дата: Пятница, 18.04.2014, 11:45 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Спасибо!
 
Ответить
СообщениеСпасибо!

Автор - MaestroSVK
Дата добавления - 18.04.2014 в 11:45
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Подсчет количества формул во всей книге (Как подсчитать количество формул)
  • Страница 1 из 1
  • 1
Поиск:

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