修改像CTRL + F这样的宏

时间:2014-01-18 07:26:22

标签: vb.net vba excel-vba excel-2007 excel

友 我使用以下代码在工作表中查找NAME并输入其状态。但如果存在重复或类似名称,则此宏不兼容。朋友们能帮助我解决这个问题。我需要的是我需要这个宏来激活搜索NAME Cell,然后使用OK& amp;必须出现“下一步”按钮。如果激活的NAME正是我正在搜索的那个,那么我将点击OK按钮然后它应该显示“输入员工状态”框并在我的代码中继续,但是如果我按下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

1 个答案:

答案 0 :(得分:0)

您正在寻找的是创建一个UserForm。您可以通过在Visual Basic编辑器中右键单击VBAProject并选择“插入” - >来完成此操作。 “用户窗体”。

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

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