选择一个日期,循环遍历列,然后将值移动到另一个工作表

时间:2014-01-03 13:01:49

标签: excel vba

我有第二行中有一年中某些日子的工作表,我想搜索此范围并通过输入框查找日期,然后使用所选日期遍历该列以查找具有特定字母的所有单元格它(例如“E”),然后在A列中取相应的名称并将其复制到另一张表格中,在新表格中创建一个名单列表。

我有通过输入框选择日期的代码,但效果很好,但我对其余部分有困难。

Sub Worksheet_Find()

    Dim strdate As String
    Dim rCell As Range
    Dim lReply As Long

    strdate = Application.InputBox(Prompt:="Enter a Date to Locate on This Worksheet", _
            Title:="DATE FIND", Default:=Format(Date, "Short Date"), Type:=1)

    If strdate = "False" Then Exit Sub
    strdate = Format(strdate, "Short Date")

    On Error Resume Next

    Set rCell = Cells.Find(What:=CDate(strdate), After:=Range("A1"), LookIn:=xlFormulas _
        , LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)

   rCell.Select

   On Error GoTo 0

   If rCell Is Nothing Then
       lReply = MsgBox("Date cannot be found. Try Again", vbYesNo)
       If lReply = vbYes Then Run "FindDate":
   End If

End Sub

非常感谢任何帮助。

wingnut74

1 个答案:

答案 0 :(得分:0)

我希望你做一个简单的Do While循环:

Do While Len(Sheets("SheetName").Cells(i, rCell.collumn).value)>0
    'do your if condition here... (if Sheets("SheetName").Cells(i, rCell.collumn).value Like "*E*" or use Instr() function
    i=i+1
Loop

类似的东西......如果你不确定如何使用循环,请在一些教程中查看