0
我想要擁有2或3個不同變量(變體)的最大值。他們都是日期。 我有下面的代碼,但我相信,我正在做一些非常錯誤的事情。 你能幫助我嗎? 這是代碼;Excel - VBA在循環後查找最大變量
Dim QA As Integer: QA = 0
For Each j_WS In Array(WS_1, WS_2, WS3)
Select Case QA
Case 0: j = 1
Case 1: j = 2
Case 2: j = 3
End Select
o = 14 + j * 3
Dim WA1 As Variant
Dim WA2 As Variant
Dim WA3 As Variant
Gorev = Cells(p, o).Address
SlideNo = Cells(p, 34).Address
Egitim_Adi = Cells(2, 3).Address
Dim Satir_bul As Variant
If Not IsError(Satir_bul) Then
Satir_bul = Worksheets(WS_All).Evaluate("=Match(" & Egitim_Adi & "&" & SlideNo & "&" & Gorev & ", '" & j_WS & "'!A:A&'" & j_WS & "'!B:B&'" & j_WS & "'!C:C, 0)")
Else
WA1 = ""
WA2 = ""
WA3 = ""
End If
If j = 1 And Worksheets(WS_All).Cells(8, 3).Value = "Yeni Egitim" Or j = 1 And Worksheets(WS_All).Cells(8, 3).Value = "Tanitim/Reklam" Then
WA1 = Worksheets(j_WS).Cells(Satir_bul, 7).Value
Else: WA1 = Worksheets(j_WS).Cells(Satir_bul, 9).Value
If j = 2 And Worksheets(WS_All).Cells(8, 3).Value = "Yeni Egitim" Or j = 1 And Worksheets(WS_All).Cells(8, 3).Value = "Tanitim/Reklam" Then
WA2 = Worksheets(j_WS).Cells(Satir_bul, 7).Value
Else: WA2 = Worksheets(j_WS).Cells(Satir_bul, 9).Value
If j = 3 And Worksheets(WS_All).Cells(8, 3).Value = "Yeni Egitim" Or j = 1 And Worksheets(WS_All).Cells(8, 3).Value = "Tanitim/Reklam" Then
WA3 = Worksheets(j_WS).Cells(Satir_bul, 7).Value
Else: WA3 = Worksheets(j_WS).Cells(Satir_bul, 9).Value
End If
End If
End If
QA = QA + 1
Next j_WS
If WA1 > WA2 And WA1 > WA3 Then
MAX_DATE = WA1
Else
If WA2 > WA3 And WA2 > WA1 Then
MAX_DATE = WA2
Else
If WA3 > WA2 And WA3 > WA1 Then
MAX_DATE = WA3
Else
MAX_DATE = ""
End If
End If
End If
Worksheets(WS_All).Cells(p, 26).Value = MAX_DATE
Next p
正如你可以看到,幾乎所有的東西是一個預定義的整數或類似的和WA1,WA2和WA3是所有日期,我想MAX_DATE是迄今爲止太的東西。
WA1,WA2和WA3在循環內不正確。 WA1在第一個迴路處正確,WA2在第二個迴路處正確,依此類推,但例如在第二個迴路處,WA1變空。正因爲如此,MAX_DATE值無法正常工作。
實際上,日期類型不是我在這裏的主要問題。主要問題是,在第一次循環之後,MAX_DATE不能正確重置自身。它堅持我相信的第一個價值。 – Bildircin13
因爲它在循環之外。 –
但它應該在WA迴路之外,因爲它取決於3個不同的WA值。 – Bildircin13