Frage : EOMONTH, EDATE u. NETWORKDAYS Alternative

Hallo,

Using der angebrachte Code erhalte ich das Störung #NAME? auf einigen Maschinen. Ich denke, dass ich es unten zur Tatsache festgelegt habe, welche die Versionen von Strecke von 2000 übertreffen - 2003 sp3 und einige haben nicht das angebrachte Analyse toolpack?

Is dort eine Alternative, die ich für die vier Linien unten verwenden kann?
-------------------------------------------------------------------------------------------------------------------

Range („AS2“). Formel = „=EOMONTH (AL2,1) „

Range („A47“). Formel = „=AS2- ((EOMONTH (AS2,0) - EOMONTH (AS2, - 1)) - 1) „

Range („A48: A58“) .FormulaR1C1 = „=EDATE (R [- 1] C [], - 1) „

Range („D47: D58“) .FormulaR1C1 = „=NETWORKDAYS (RC [- 3], EOMONTH (RC [- 3], 0), Control! R2C13: R23C13) „

-------------------------------------------------------------------------------------------------------------------



What, das ich versuche zu erzielen, ist, dass diese Zelle AS2 durch Plus vorangebracht wird 1 Monat sich Listen dann A47-A58 erstrecken, die letzten 12 Monate einschließlich den laufenden Monat auch sich D47 erstrecken: D58 gibt die Gesamtarbeitstage für jedes von diese months.

Thanks im Voraus
Sq




1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
Private VorMonthPlus1 ()

Application.EnableEvents = falsch

Strecke („AL2“). Formel = „=AS2“
Strecke („AL2“). Wert = Strecke („AL2“). Wert

Strecke („AS2“). Formel = „=EOMONTH (AL2,1)“
Strecke („AS2“). Wert = Strecke („AS2“). Wert

Strecke („AL2“) .ClearContents
     
    
Strecke („A47“). Formel = „=AS2- ((EOMONTH (AS2,0) - EOMONTH (AS2, - 1))- 1)“
Strecke („A47“). Wert = Strecke („A47“). Wert

Strecke („A48: A58“) .FormulaR1C1 = „=EDATE (R [- 1] C [], - 1)“
Strecke („A48: C58“). Wert = Strecke („A48: C58“). Wert

Strecke („D47: D58“) .FormulaR1C1 = „=NETWORKDAYS (RC [- 3], EOMONTH (RC [- 3], 0), Steuerung! R2C13: R23C13)“
Strecke („D47: D58“). Wert = Strecke („D47: D58“). Wert

Application.EnableEvents = richten aus

Enden-Unterseeboot

Antwort : EOMONTH, EDATE u. NETWORKDAYS Alternative

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
Funktion Networkdaysvba (startDate als Doppeltes, endDate als Datum, wahlweise freigestellte Feiertage als Variante) als ganze Zahl
    I als ganze Zahl verdunkeln
    Tmp als ganze Zahl verdunkeln
    Papierlösekorotron als Datum, dtStart verdunkeln als Datum
    
    startDate = Verlegenheit (startDate)
    tmp = ((endDate - startDate + 1) \ 7) * 5 'gesamte Arbeitswochen
    dtStart = startDate + (tmp * 7/5) 'Bewegung zur letzten Woche
    Für Papierlösekorotron = dtStart zum endDate
        Wenn Wochentag (Papierlösekorotron, vbMonday) <>= h dann
                tmp = tmp - 1
            Beenden wenn
        Zunächst
    Beenden wenn
    Networkdaysvba = tmp
Enden-Funktion

Funktion EOMonthVBA (startDate als Doppeltes, Monate als lang) als Datum
    startDate = Verlegenheit (startDate)
    EOMonthVBA = DateAdd („m“, Monate + 1, startDate - Tag (startDate) + 1) - 1
Enden-Funktion

Funktion EDateVBA (startDate als Doppeltes, Monate als lang) als Datum
    startDate = Verlegenheit (startDate)
    EDateVBA = DateAdd („m“, Monate, startDate)
Enden-Funktion
Weitere Lösungen  
 
programming4us programming4us