【问题标题】:Select a date, loop through column then move value to another sheet选择一个日期,遍历列然后将值移动到另一个工作表
【发布时间】:2014-01-03 22:42:13
【问题描述】:

我有一张在第 2 行中包含一年中日期的表格,我想搜索此范围并通过输入框查找日期,然后使用所选日期遍历该列以查找所有具有特定字母的单元格它(例如“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

【问题讨论】:

  • 如果你把它改写成最后的问题,它会帮助你得到答案。比如“我怎样才能得到剩余的?”

标签: excel vba


【解决方案1】:

我希望你做一个简单的 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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 2016-03-23
    • 1970-01-01
    相关资源
    最近更新 更多