2016-01-07 15 views
5

Sto facendo un programma di produzione e vorrei aggiungere ex. 78 minuti per volta ex. 7:05 (em.) In VBA. Come potrei fare questo? Questo è quello che ho provato finora, ma sto ottenendo un tipo di errore 13: mancata corrispondenzaAggiungi minuti alla volta (hh: mm) in excel vba

Dim TUntilPump As Integer 
Dim TFPump As Long, TStartPump As Long 

TUP = 78 
TFP = Time(0, TUP, 0) 
TSP = Time(7,05,0) + TFP 

sto pensando che abbia qualcosa a che fare con le mie dimensioni variabili o il formato dei miei tempi, ma ho non ho idea di cosa sto sbagliando. Qualsiasi aiuto è apprezzato e grazie in anticipo!

+0

Utilizzare questo, tranne il cambiamento "d" a "n": http://stackoverflow.com/questions/16259166/add-x-number-of-days-to-a-date-with-vba -in-excel – PKatona

+1

@ScottCraner, sì, mi sono reso conto non appena ho commentato e modificato su "n" mentre mi correggevi. – PKatona

+0

ha funzionato una di queste risposte? Si prega di selezionare uno come corretto. –

risposta

9

utilizzare la funzione DATEADD:

TRP = dateadd("n",78,"7:05:00") 

la "n" significa minuti.

+0

Perché non "m"? Cosa significa "n" per VBA? (Solo curioso) – BruceWayne

+4

Perché 'm' è per' Mese' –

+3

@BruceWayne Ho dovuto cercare anche su. Quindi il link. Volevo tornare indietro. –

7

Gli orari devono essere considerati di tipo vars per questo. Il tempo è una porzione decimale di un giorno (1). 0.5 è mezzogiorno e 0.666666 è 04:00 pm. Ho trovato che il TimeSerial function è buono per la costruzione di date.

dim TFP as double, TSP as double, TUP as integer 

TUP = 78 
TFP = TimeSerial(0, TUP, 0) 
TSP = TimeSerial(7, 5, 0) + TFP 
'alternate 
TSP = TimeSerial(7, 5 + TUP, 0)