在VBA中找到最早的日期

时间:2018-05-03 19:10:19

标签: excel vba excel-vba

我在D栏中有很多日期。我需要找到最早日期的学生,并在留言箱中显示以下信息:

    $('button[name="destroy"]').on('click', function (e) {

        var btnValue = this.value;

        swal({
            title: "Are you sure?",
            text: "Once you delete this row, you can not rollback it",
            type: "warning",
            showCancelButton: true,
            buttonsStyling: false,
            confirmButtonColor: '#dd394a',
            confirmButtonText: 'Yes, I am sure!',
            cancelButtonText: "No, cancel it!",
            background: 'rgba(0, 0, 0, 0.96)',
            confirmButtonClass: 'btn btn-sm btn-light',
        }).then(function () {

            $.ajax({

                url: 'Groupe/destroy/' + btnValue,
                type: 'POST',

                success: function (data) {
                    $('.modal-content').html(data);
                }
            });
        });
    });

然而,当我运行宏时,它显示错误的日期。表格中最早的日期是31-08-1996,但它表示最早的日期是01-02-2010,如果我在Excel中写Sub Finddate() Dim Mn As Integer Mn = Application.Match(Application.Min(Range("D2:D18288")), Range("D2:D18288"), 0) MsgBox ("For the student with the earliest date (" & Range("D" & Mn) & ") the following information applies: " & Range("k" & Mn) & ", " & Range("L" & Mn) & " and " & Range("M" & Mn)) End Sub ,它会找到正确的日期。但我也需要它在VBA中工作。如果我将min更改为max,它也会找到错误的日期。但如果我反而写:

=min(D2:D18288)

它显示正确的日期,但我需要找到最小日期而不是最大日期,当我将max更改为min时,我得到类型不匹配错误。我真的不知道有什么不对,真希望有人能帮助我!

2 个答案:

答案 0 :(得分:2)

1 ................您的索引已关闭,因为数据从 D2开始< / strong>而不是 D1 ,Mn指向正好在最小值之上的单元格。

答案 1 :(得分:0)

当发生类似情况时,尝试使用小样本复制结果。例如。这一个,希望返回Peter6获取最小的信息:

enter image description here

Option Explicit

Public Sub TestMe()

    Dim dateRanges As Range
    Set dateRanges = Range("D1:D11")

    Dim mn As Variant
    With Application
        mn = .Match(.Min(dateRanges), dateRanges, 0)
    End With

    MsgBox Range("E" & mn).Value2

End Sub

一旦有效,请尝试使用您的大型示例进行修复。

您可能会注意到mn不应该是IntegerInteger最多为32767,并且解析为日期为16-September-1989,这是很久以前的事了。在您的情况下,这不是错误,因为您没有直接将mn引用到某个日期,但可能会在稍后发生。