Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> число вхождений подстроки в строку 
:(
    Опции темы
motorway
Дата 15.7.2009, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: нет
Всего: 0



Как определить на VBA, что в строке содержится ровно 2 знака доллара и одно двоеточие?
PM MAIL   Вверх
Naghual
Дата 15.7.2009, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 7
Всего: 49



Так:
Код

Public Function YesString(SourceStr As String) As String
    Dim DelimitersCount As Integer
    Dim DollarsCount As Integer
    
    DelimitersCount = StrOccurrence(SourceStr, ";")
    DollarsCount = StrOccurrence(SourceStr, "$")
    
    If (DelimitersCount = 1) And (DollarsCount = 2) Then
        YesString = "YES"
    Else
        YesString = "NO"
    End If
End Function

Public Function StrOccurrence(SourceString As String, SearchString As String) As Integer
    Dim intPos As Integer
    
    StrOccurrence = -1
    If (Len(SourceString) < 1) Or (Len(SearchString) < 1) Then
        Exit Function
    End If
    If Len(SourceString) < Len(SearchString) Then
        Exit Function
    End If
    StrOccurrence = 0
    
    intPos = InStr(1, SourceString, SearchString, vbTextCompare)
    While intPos > 0
        StrOccurrence = StrOccurrence + 1
        intPos = intPos + Len(SearchString)
        intPos = InStr(intPos, SourceString, SearchString, vbTextCompare)
    Wend
End Function



--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
SOLAMON
Дата 22.7.2009, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 21.7.2009
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Спорю что быстрее всего будет так:

 ( (ubound(Split( Строка, "$")) = 2 ) and  (ubound(Split( Строка, ":")) = 1 ) )
PM MAIL ICQ Skype   Вверх
Naghual
Дата 22.7.2009, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 7
Всего: 49



Согласен.  smile 


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.1217 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.