Excel Date Picker Формат даты - PullRequest
0 голосов
/ 09 июня 2018

У меня возникла проблема, когда средство выбора даты в Excel использует версию даты, которую я ищу, для США.

Я пытаюсь проверить, существует ли рабочий лист в диапазонеячеек существует дата, которая попадает в параметры DTpicker1 и DTpicker2.

Может кто-нибудь посоветовать, как заставить код проверить дату в формате uk?

Private Sub CommandButton1_Click()
Dim s As Worksheet, wb As Workbook
UserForm1.Hide
For Each s In Worksheets
    If CBool(Application.CountIfs(s.Range("E11:E37"), ">" & 
    Format(DTPicker1.Value, "dd/mm/yy"), _ s.Range("E11:E37"), "<" & 
Format(DTPicker2.Value, "dd/mm/yy"))) 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

Благодарю @Jeeped, который дал мне это далеко!

Обновление: Код работает путем изменения формата даты:

Private Sub CommandButton1_Click()
Dim s As Worksheet, wb As Workbook
UserForm1.Hide
For Each s In Worksheets
    If CBool(Application.CountIfs(s.Range("E11:E37"), ">" & 
    Format(DTPicker1.Value, "mm/dd/yy"), _ s.Range("E11:E37"), "<" & 
Format(DTPicker2.Value, "mm/dd/yy"))) 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

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Реверс форматов даты и все отлично работает ...

Private Sub CommandButton1_Click()
Dim s As Worksheet, wb As Workbook
UserForm1.Hide
For Each s In Worksheets
If CBool(Application.CountIfs(s.Range("E11:E37"), ">" & 
Format(DTPicker1.Value, "mm/dd/yy"), _ s.Range("E11:E37"), "<" & 
Format(DTPicker2.Value, "mm/dd/yy"))) 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
0 голосов
/ 09 июня 2018

Вы можете принудительно проверить чек как

If dateValue.NumberFormat <> "mm/dd/yyyy" Then     '<-- provide the date format to validate with
...