我在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时,我得到类型不匹配错误。我真的不知道有什么不对,真希望有人能帮助我!
答案 0 :(得分:2)
1 ................您的索引已关闭,因为数据从 D2开始< / strong>而不是 D1 ,Mn指向正好在最小值之上的单元格。
答案 1 :(得分:0)
当发生类似情况时,尝试使用小样本复制结果。例如。这一个,希望返回Peter6
获取最小的信息:
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
不应该是Integer
,Integer
最多为32767
,并且解析为日期为16-September-1989
,这是很久以前的事了。在您的情况下,这不是错误,因为您没有直接将mn
引用到某个日期,但可能会在稍后发生。