Pytanie : EOMONTH, EDATE & NETWORKDAYS alternatywa

Cześć,

Using the dołączać kod I dostawać the błąd #NAME? na niektóre maszyna. I myśleć I dokładnie określać ono puszek the fact the the wersja przodować pasmo od 2000 - 2003 sp3 i sp3 mieć the analiza toolpack instalować?

Is tam  alternatywa I móc dla the cztery linia tam?
-------------------------------------------------------------------------------------------------------------------

Range ("AS2"). Formuła = "=EOMONTH (AL2,1) "

Range ("A47"). Formuła = "=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 I próbować być że ten komórka AS2 posuwać się naprzód plus (1) miesiąc then pasmo A47-A58 lista the ostatni 12 miesiąc wliczając the aktualny miesiąc także pasmo D47: D58 dawać the sumaryczny pracujący dzień dla/>
te months.

Thanks w advance
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 Okręt podwodny MonthPlus1 ()

Application.EnableEvents = Fałszywy

Pasmo ("AL2"). Formuła = "=AS2"
Pasmo ("AL2"). Wartość = Pasmo ("AL2"). Wartość

Pasmo ("AS2"). Formuła = "=EOMONTH (AL2,1)"
Pasmo ("AS2"). Wartość = Pasmo ("AS2"). Wartość

Pasmo ("AL2") .ClearContents
     
    
Pasmo ("A47"). Formuła = "=AS2- ((EOMONTH (AS2,0) - EOMONTH (AS2, - (1)))- (1))"
Pasmo ("A47"). Wartość = Pasmo ("A47"). Wartość

Pasmo ("A48: A58") .FormulaR1C1 = "=EDATE (R [- (1)] C [], - (1))"
Pasmo ("A48: C58"). Wartość = Pasmo ("A48: C58"). Wartość

Pasmo ("D47: D58") .FormulaR1C1 = "=NETWORKDAYS (RC [- 3], EOMONTH (RC [- 3], (0)), Kontrola! R2C13: R23C13)"
Pasmo ("D47: D58"). Wartość = Pasmo ("D47: D58"). Wartość

Application.EnableEvents = Prawdziwy

Końcówka Okręt podwodny

Odpowiedź : EOMONTH, EDATE & NETWORKDAYS alternatywa

(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:
Funkcja Networkdaysvba (startDate Kopia, endDate Jako Data, Fakultatywny wakacje Jako Wariant) Jako Integer
    Ćmić i Jako Integer
    Ćmić tmp Jako Integer
    Ćmić dt Jako Data, dtStart Data
    
    startDate = Dylemat (startDate)
    tmp = ((endDate - startDate + 1) \ 7) * 5 'całkowity praca tydzień
    dtStart = startDate + (tmp * 7/5) 'ruch w zeszłym tygodniu
    Dla dt = dtStart EndDate
        Jeżeli Dzień powszedni (dt, vbMonday) <>= h Wtedy
                tmp = tmp - (1)
            Kończyć Jeżeli
        Następnie
    Kończyć Jeżeli
    Networkdaysvba = tmp
Końcówka Funkcja

Funkcja EOMonthVBA (startDate Jako Kopia, miesiąc Długo) Data
    startDate = Dylemat (startDate)
    EOMonthVBA = DateAdd ("m", miesiąc + (1), startDate - Dzień (startDate) + 1) - (1)
Końcówka Funkcja

Funkcja EDateVBA (startDate Jako Kopia, miesiąc Długo) Data
    startDate = Dylemat (startDate)
    EDateVBA = DateAdd ("m", miesiąc, startDate)
Końcówka Funkcja
Inne rozwiązania  
 
programming4us programming4us