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

Вход

Регистрация

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

 

= Мир MS Excel/после переустановки экселя отказывается работать макрос - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » после переустановки экселя отказывается работать макрос (Макросы/Sub)
после переустановки экселя отказывается работать макрос
marryska_7 Дата: Пятница, 25.12.2015, 11:40 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Помогите пожалуйста, гуру экселя...

Есть код, раньше работал, но после переустановки excel напрочь отказывается работать...
Пишет ошибку user defined type not defined и выделяет код [vba]
Код
rx As New RegExp
[/vba]

вот собственно сам код...
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
  Dim MyConn As String, ContrInf As String
  Dim fio As String, summ As String, rashod As String, MinPlatezh As String, limit As String, sotr As String, fininst As String, ostatok As String, Cnt As Integer
  Dim fin As String, rozd As String, pasp As String, propiska As String, fakt As String, ssylka As String
  Dim nach_d As String, nach_m As String, nach_y As String, kon_d As String, kon_m As String, kon_y As String, dopki As String
  Dim rx As New RegExp, Matches As MatchCollection, Match As Match
      

  rx.MultiLine = True
  rx.Global = True
  rx.IgnoreCase = True
  Application.EnableEvents = False
  If Target.Cells.Count = 1 Then
    If Not Application.Intersect(Target, Range("cards")) Is Nothing Then
'      Target.Value = Mid(Target.Value, 2, 16)
      rx.Pattern = "\d{16}"
      Set Matches = rx.Execute(Target.Value)
      If Matches.Count > 0 Then
        Target.Value = Matches(0).Value
        ContrInf = ContractInfo(Target.Value)
        rx.Pattern = Target.Value
        Set Matches = rx.Execute(ContrInf)
        If Matches.Count > 0 Then
          ParseResponse ContrInf, fio, rashod, MinPlatezh, dopki, limit, ostatok, fin, rozd, pasp, propiska, fakt, ssylka
          Cnt = Target.Row - Range("cards").Row + 1
          
          Cells(Target.Row, 1).Value = Cnt
          Cells(Target.Row, 3).Value = fio
          Cells(Target.Row, 5).Value = rashod
          Cells(Target.Row, 4).Value = MinPlatezh
          Cells(Target.Row, 7).Value = dopki
          Cells(Target.Row, 8).Value = limit
          Cells(Target.Row, 10).Value = ostatok
          Cells(Target.Row, 11).Value = fin
          Cells(Target.Row, 12).Value = rozd
          Cells(Target.Row, 13).Value = pasp
          Cells(Target.Row, 14).Value = propiska
          Cells(Target.Row, 15).Value = fakt
          Cells(Target.Row, 27).Value = ssylka
        Else
          Cells(Target.Row, 3).Value = "нет данных"
          Target.Activate
        End If
      End If
    End If
  End If
  Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
[/vba]
 
Ответить
СообщениеПомогите пожалуйста, гуру экселя...

Есть код, раньше работал, но после переустановки excel напрочь отказывается работать...
Пишет ошибку user defined type not defined и выделяет код [vba]
Код
rx As New RegExp
[/vba]

вот собственно сам код...
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
  Dim MyConn As String, ContrInf As String
  Dim fio As String, summ As String, rashod As String, MinPlatezh As String, limit As String, sotr As String, fininst As String, ostatok As String, Cnt As Integer
  Dim fin As String, rozd As String, pasp As String, propiska As String, fakt As String, ssylka As String
  Dim nach_d As String, nach_m As String, nach_y As String, kon_d As String, kon_m As String, kon_y As String, dopki As String
  Dim rx As New RegExp, Matches As MatchCollection, Match As Match
      

  rx.MultiLine = True
  rx.Global = True
  rx.IgnoreCase = True
  Application.EnableEvents = False
  If Target.Cells.Count = 1 Then
    If Not Application.Intersect(Target, Range("cards")) Is Nothing Then
'      Target.Value = Mid(Target.Value, 2, 16)
      rx.Pattern = "\d{16}"
      Set Matches = rx.Execute(Target.Value)
      If Matches.Count > 0 Then
        Target.Value = Matches(0).Value
        ContrInf = ContractInfo(Target.Value)
        rx.Pattern = Target.Value
        Set Matches = rx.Execute(ContrInf)
        If Matches.Count > 0 Then
          ParseResponse ContrInf, fio, rashod, MinPlatezh, dopki, limit, ostatok, fin, rozd, pasp, propiska, fakt, ssylka
          Cnt = Target.Row - Range("cards").Row + 1
          
          Cells(Target.Row, 1).Value = Cnt
          Cells(Target.Row, 3).Value = fio
          Cells(Target.Row, 5).Value = rashod
          Cells(Target.Row, 4).Value = MinPlatezh
          Cells(Target.Row, 7).Value = dopki
          Cells(Target.Row, 8).Value = limit
          Cells(Target.Row, 10).Value = ostatok
          Cells(Target.Row, 11).Value = fin
          Cells(Target.Row, 12).Value = rozd
          Cells(Target.Row, 13).Value = pasp
          Cells(Target.Row, 14).Value = propiska
          Cells(Target.Row, 15).Value = fakt
          Cells(Target.Row, 27).Value = ssylka
        Else
          Cells(Target.Row, 3).Value = "нет данных"
          Target.Activate
        End If
      End If
    End If
  End If
  Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
[/vba]

Автор - marryska_7
Дата добавления - 25.12.2015 в 11:40
SLAVICK Дата: Пятница, 25.12.2015, 12:04 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Скорее всего не подключена нужная библиотека.
Наверное эта:
Tools -> References -> Microsoft VBScript Regular Expressions


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Пятница, 25.12.2015, 12:10
 
Ответить
СообщениеСкорее всего не подключена нужная библиотека.
Наверное эта:
Tools -> References -> Microsoft VBScript Regular Expressions

Автор - SLAVICK
Дата добавления - 25.12.2015 в 12:04
marryska_7 Дата: Пятница, 25.12.2015, 12:08 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
%)
Скорее всего не подключена нужная библиотека.

Да, вы оказались правы! Совсем забыла про библиотеку! %)
 
Ответить
Сообщение%)
Скорее всего не подключена нужная библиотека.

Да, вы оказались правы! Совсем забыла про библиотеку! %)

Автор - marryska_7
Дата добавления - 25.12.2015 в 12:08
Мир MS Excel » Вопросы и решения » Вопросы по VBA » после переустановки экселя отказывается работать макрос (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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