2013-05-10 2 views
0

Кто-нибудь знает, как я могу найти самый ранний MMMYY из массива следующей формы (см. Столбец K).Как найти самый ранний MMMYY из массива дат?

Примечание: дата не сортируется в порядке возрастания.

enter image description here

Код:

Sub outputfile() 
'Capture the contract no. in ContractNo() array 
Dim ContractNo() As String 
'Capture the project title in ProjectTitle() array 
Dim ProjectTitle() As String 
'Capture the contract start in ContractStart() array 
Dim ContractStart() As Date 
'Capture the contract end in ContractEnd() array 
Dim ContractEnd() As Date 

'Capture ASPQ Cement in ASPQC() array 
Dim ASPQC() As Double 
'Capture ASP Sand in ASPQS() array 
Dim ASPQS() As Double 
'Capture ASP Aggregate in ASPQA() array 
Dim ASPQA() As Double 

i = 2 
Do Until IsEmpty(Cells(i, 1).Value) 
i = i + 1 
Loop 

ReDim ContractNo(1 To i - 2) 
ReDim ProjectTitle(1 To i - 2) 
ReDim ContractStart(1 To i - 2) 
ReDim ContractEnd(1 To i - 2) 
ReDim ASPQC(1 To i - 2) 
ReDim ASPQS(1 To i - 2) 
ReDim ASPQA(1 To i - 2) 

For i = 1 To UBound(ContractNo, 1) 
ContractNo(i) = Cells(i + 1, 1).Value 
ProjectTitle(i) = Cells(i + 1, 2).Value 
ContractStart(i) = Cells(i + 1, 11).Value 
ContractEnd(i) = Cells(i + 1, 12).Value 
ASPQC(i) = Cells(i + 1, 14).Value 
ASPQS(i) = Cells(i + 1, 15).Value 
ASPQA(i) = Cells(i + 1, 16).Value 
Next i 

End sub 
+0

Должен ли я быть администратором, я не знаю VBA, но разве нет метода «min()» или так? –

+0

Я думал об использовании функции min(), но хотел бы знать, есть ли лучший способ там. :) –

+1

Ну, если есть встроенная функция, почему бы вам даже подумать, что вы можете сделать лучше? Теперь я не говорю, что это работает, но вы, похоже, согласитесь, что это ... –

ответ

3

Я считаю, что лучше всего это встроенный в формуле в ячейке.

=TEXT(MIN(K:K), "MMMYY")  
Смежные вопросы