В форме Excel, когда данные вводятся через форму, он должен искать тот конкретный идентификатор, уже введенный в лист - PullRequest
0 голосов
/ 26 апреля 2011

Я создал форму, и она работает нормально.Вот моя форма

 Private Sub cmdAdd_Click()
Dim iRow As Long
Dim iAction As Long 
Dim iPriority As Long
Dim ws As Worksheet
Set ws = Worksheets("PlanningActions")
iRow = ws.Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0).Row
If Trim(Me.txtAction.Value) = "" Then
Me.txtAction.SetFocus
MsgBox "Please enter an Action"
Exit Sub
End If


ws.Cells(iRow, 1).Value = Me.txtAction.Value
ws.Cells(iRow, 2).Value = Me.txtTopic.Value
ws.Cells(iRow, 3).Value = Me.txtPerson.Value
ws.Cells(iRow, 4).Value = Me.txtLocation.Value
ws.Cells(iRow, 5).Value = Me.txtDate.Value
ws.Cells(iRow, 6).Value = Me.txtContact.Value
ws.Cells(iRow, 7).Value = Me.cboPriority.Value
ws.Cells(iRow, 8).Value = Me.cboPriority.List(iPriority, 1)
Me.txtAction.Value = ""
Me.txtTopic.Value = ""
Me.txtPerson.Value = ""
Me.txtLocation.Value = ""
Me.txtContact.Value = ""
Me.cboPriority.Value = ""
Me.txtDate.Value = ""
Me.txtAction.SetFocus
End Sub
Private Sub cmdClose_Click()
Unload Me
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, _
CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
Cancel = True
MsgBox "Please use the button!"
End If
End Sub
Private Sub UserForm_Initialize()
Dim cPri As Range
Dim cLoc As Range
Dim ws As Worksheet
Set ws = Worksheets("LookupLists")
For Each cPri In ws.Range("Priority")
With Me.cboPriority
.AddItem cPri.Value
.List(.ListCount - 1, 0) = cPri.Offset(0, 1).Value
End With
Next cPri
Me.txtAction.Value = ""
Me.txtTopic.Value = ""
Me.txtPerson.Value = ""
Me.txtLocation.Value = ""
Me.txtDate.Value = ""
Me.txtContact.Value = ""
Me.cboPriority.Value = ""
Me.txtAction.SetFocus
End Sub

В моем списке примеров уже введены уникальные идентификаторы этого человека.когда данные вводятся через эту форму, они должны искать этот конкретный идентификатор и перед этими данными.

Как мне это сделать?

Заранее спасибо

1 Ответ

0 голосов
/ 26 апреля 2011

вместо

iRow = ws.Cells(Rows.Count, 1) _
       .End(xlUp).Offset(1, 0).Row

, который выбирает строку ниже последней непустой строки, попробуйте это:

iRow = WorksheetFunction.Match(personID, Columns("A"), False)

Вы не объясняете, что это за личность ... может быть, Me.txtPerson.Value? В любом случае, замените personID в зависимости от ситуации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...