修改宏,如 CTRL+F



Friends,我使用以下代码在我的工作表中查找 NAME 并输入其状态。但是,如果存在重复或相似的名称,则此宏不兼容。朋友们,你能帮我解决这个问题吗?我需要的是我需要这个宏来激活搜索NAME单元格,然后必须出现一个带有"确定"和"下一步"按钮的VB框。如果激活的 NAME 正是我正在搜索的那个,那么我将单击"确定"按钮,然后它应该显示"输入员工状态"框并继续在我的代码中,但是如果我按 NEXT,宏应该搜索下一个类似的 NAME 并激活它,这个过程应该继续,直到我单击"确定"按钮。 (与带有附加状态输入按钮的 CTRL+F 功能相同)

朋友们,请帮助我

      Sub Button1848_Click()
      Application.ScreenUpdating = False
      Dim BeginCol As Long
                  Dim endCol As Long
                  Dim ChkRow As Long
                  Dim rng As Range
                  Dim c As Variant
                  BeginCol = 6
                  endCol = 370
                  ChkRow = 7
                  For Colcnt = BeginCol To endCol
        If Sheets("Sheet1").Cells(ChkRow, Colcnt).Value = Date Then
        Name = InputBox("Enter Employee name")
        Cells.Find(What:=Name, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False).Activate
       ActiveCell.Select
        Set rng = Sheets("Sheet1").Cells(ChkRow, Colcnt).Rows("2:500")
                        For Each c In rng
                            If Sheets("Sheet1").Cells(c.Row, 2).Value = ActiveCell Then
                            If c.Value = "" Then
                    Status = InputBox("Enter Employee Status")
                              c.Value = Status
                                  End If
                              End If
                         Next c
                      Else
                         'MsgBox "No Employee in this Name"
                   End If
                  Next Colcnt
    Application.ScreenUpdating = True
    ActiveWorkbook.Save
    End Sub

你要找的是创建一个用户表单。您可以通过在Visual Basic编辑器中右键单击VBAProject并选择"插入"->"UserForm"来执行此操作。

将其设计为包含所需的按钮,并将代码添加到按钮。完成后,您可以通过调用 <UserFormName>.Show 来显示它。

最后,您需要将用户窗体的ShowModal属性设置为 False 。这将允许您在窗体打开时使用工作簿,从而模仿 CTRL+F 对话框的行为。

最新更新