检查DT Picker Results,将工作表复制到新工作簿中

时间:2018-06-09 14:44:53

标签: excel vba excel-vba

我的VBA技能并不是最好的,如果有人可以帮助以下那些会很棒。

我在工作簿中有许多工作表,其日期记录在单元格范围E11:E37中。

我正在尝试创建一个报表功能,用户可以通过该功能完成日期选择器用户表单,Excel会在此工作簿的所有工作表中对上述范围运行搜索,以查看DTPicker1 / 2结果之间的日期。 / p>

对于返回匹配项的工作表,请将所有这些工作表复制到名称为("名称和当前日期" .xlsx)的新工作簿。

更新:我尝试撤消>和<,没有变化,认为我用Date包裹了DTPicker值没有结果,两者都没有,没有结果....

更新:代码现在正在工作,但不会返回值true,其中日期范围= 01/06/18 - 14/06/18,其中DTP1 = 07/06/18,DTP2 = 16/06/18。但是,如果DTP1 = 04/06/18且DTP2 = 08/06/18,则返回true。

Private Sub CommandButton1_Click()
Dim s As Worksheet, wb As Workbook

For Each s In Worksheets
    If CBool(Application.CountIfs(s.Range("E11:E37"), ">" & 
CDate(DTPicker1.Value), _
                                  s.Range("E11:E37"), "<" & 
CDate(DTPicker2.Value))) Then
        If wb Is Nothing Then
            s.Copy
            Set wb = ActiveWorkbook
        Else
            s.Copy after:=wb.Worksheets(wb.Worksheets.Count)
        End If
    End If
Next s

If wb Is Nothing Then
    MsgBox ("No Records Found")
Else
    wb.SaveAs Filename:="Technicians - Batch Record Report" & Format(Date, 
"ddmmyyyy"), _
          FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
End If
End Sub

1 个答案:

答案 0 :(得分:0)

尝试这样做,看看它是否让你更接近目标。

.Quit