В поисках номера - PullRequest
       0

В поисках номера

0 голосов
/ 07 апреля 2020

У нас есть 3 системы в нашей группе - одна система испытывает затруднения при распознавании кода Excel VBA, который ищет число - есть идеи? Спасибо

Код ниже: часть, с которой у нас проблемы, это Selection.Find часть: Самое странное, что я когда-либо видел - спасибо.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim curid As String
Application.Goto Reference:="R2C2"
'curid is the id number to search for
curid = ActiveCell.Value2

  'Target Address is F1 - contains a drop down list of selections
If Target.Address = "$F$1" Then
    On Error GoTo bm_Safe_Exit
    Application.EnableEvents = False
    Select Case Target.Value2
        Case "Approved"
        'statusid is a column containing all record id numbers ranging from 1 to 115 right now
                Application.Goto Reference:="statusid"
        'this is the problem - it will not execute on one system we have
                Selection.Find(What:=curid, After:=ActiveCell, LookIn:=xlValues, LookAt _
                :=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
                False, SearchFormat:=False).Activate

                ActiveCell.Offset(0, 1).Range("A1").Select
                ActiveCell.FormulaR1C1 = "Approved"
                Sheets("Update Form").Select

1 Ответ

0 голосов
/ 07 апреля 2020

Должно выглядеть так:

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim curid As String, f As Range
    curid = Me.Range("B2").Value 'curid is the id number to search for

    'Target Address is F1 - contains a drop down list of selections
    If Target.Address = "$F$1" Then
        On Error GoTo bm_Safe_Exit
        Application.EnableEvents = False
        Select Case Target.Value
            Case "Approved"
            'statusid is a column containing all record id numbers ranging from 1 to 115 right now
                Set f = Range("statusid").Find(What:=curid, LookIn:=xlValues, _
                               LookAt:=xlWhole, MatchCase:=False)
                If Not f Is Nothing Then
                    f.Offset(0, 1).Value = "Approved"
                Else
                    'was not found
                End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...