程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了查找在特定日期范围内出现的人员大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决查找在特定日期范围内出现的人员?

开发过程中遇到查找在特定日期范围内出现的人员的问题如何解决?下面主要结合日常开发的经验,给出你关于查找在特定日期范围内出现的人员的解决方法建议,希望对你解决查找在特定日期范围内出现的人员有所启发或帮助;

数据在excel表格中提供,应在输入框或excel的其他单元格中输入。 现在应该进行输入,然后检查那些日子是否有人在场,并应反映在输出中的人员。

数据:

查找在特定日期范围内出现的人员

输入:

查找在特定日期范围内出现的人员

输出应该是:

查找在特定日期范围内出现的人员

我写了一段代码,但找不到我出错的地方。请帮我纠正代码或创建新代码

@H_419_14@Sub Sai_Aircraft_log_entry1()
Dim p,e1,e2 As Date

Worksheets("Test2").Select
e1 = Cells(5,11).Value
e2 = Cells(6,11).Value

Sheets("Output2").Cells.Clear
Worksheets("Output2").Select
Range("A2").Select


Dim n,m,k,s As Integer
    Worksheets("Test2").Select

    Range("A1").Select
    Range(Selection,Selection.End(xlDown)).Select
    n = Range(Selection,Selection.End(xlDown)).Count
    
Dim i,o As Date
Dim x As Integer
Dim A As String
    
    For p = e1 To e2
        Worksheets("Output2").Select
        ActiveCell.Select
        ActiveCell.Value = p
        ActiveCell.Offset(0,1).Select
    
        For x = 2 To n
           Worksheets("Test2").Select
        'bring below line up
            i = Cells(x,5).Value
            o = Cells(x,6).Value
            A = Cells(x,3).Value

            If i =< p and o => p Then
                '
                Worksheets("Output2").Select
                ActiveCell.Value = A
                ActiveCell.Offset(0,1).Select
             End If
    Next x
    Worksheets("Output2").Select
    Range(Selection,Selection.End(xlToleft)).Select
    m = Range(Selection,Selection.End(xlToleft)).Count
    k = m * -1
    s = k + 2
    'MsgBox k
    ActiveCell.Offset(1,0).Select
    'MsgBox k
    ActiveCell.Offset(0,s).Select
    Next p
End Sub

解决方法

不确定问题是什么,因为您的代码似乎可以工作,但不使用 ActiveCell.Select 会更容易理解。

Option Explicit
Sub Sai_Aircraft_log_entry2()

    Dim ws As Worksheet,wsOut As Worksheet
    Dim dtStart As Date,dtEnd As Date,dt As Date
    Dim dtIn As Date,dtOut As Date
    Dim iLastRow As Long,rOut As Long,r As Long,c As Long
    
    Set wsOut = Sheets("Output2")
    wsOut.Cells.Clear
    
    Set ws = Sheets("Test2")
    With ws
        dtStart = .Range("K5")
        dtEnd = .Range("K6")
        iLastRow = .Cells(Rows.Count,"C").End(xlUp).Row
    End With
      
    rOut = 2
    For dt = dtStart To dtEnd
        wsOut.Cells(rOut,1) = dt
        ' scan in/out sheet
        c = 1
        For r = 2 To iLastRow
            dtIn = ws.Cells(r,"E")
            dtOut = ws.Cells(r,"F")
            If dt >= dtIn And dt <= dtOut Then
                c = c + 1
                wsOut.Cells(rOut,c) = ws.Cells(r,"C")
            End If
        Next
        rOut = rOut + 1
    Next

    MsgBox "Done"
End Sub

大佬总结

以上是大佬教程为你收集整理的查找在特定日期范围内出现的人员全部内容,希望文章能够帮你解决查找在特定日期范围内出现的人员所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: