2016-01-06 14 views
5

stavo guardando un tutorial per il confronto di due fogli di lavoro Excel e sono imbattuto in questo:Qual è worksheet.Cells (riga, colonna) .Formula

cellVal1 = ws1.Cells(row, col).Formula 

Nel video dice che questo assegna il valore della specificato cella allo cellVal1. Ho visto solo le persone utilizzano ws.Cells(row, col).Value e non riesco a trovare nulla di .Formula per quanto riguarda .Cells(<row>,<col>)

Cosa .Formula fare ed è diverso rispetto .Value?

+4

La variabile potrebbe finire con la formula e non il risultato di tale formula. Quindi diciamo in Cell (1,1) c'è una formula '= Sum (1,1)', il valore '.Value' restituirebbe 2 ma' .Formula' restituire '= Sum (1,1)' come stringa. –

+0

Ecco alcuni link in un ordine approssimativo di pertinenza alla tua domanda: [Proprietà Range.Value] (https://msdn.microsoft.com/en-us/library/office/ff195193.aspx), proprietà [Range.Formula ] (https://msdn.microsoft.com/en-us/library/office/ff838835.aspx), [proprietà Range.Text] (https://msdn.microsoft.com/en-us/library/office/ ff840217.aspx), [proprietà Range.Value2] (https://msdn.microsoft.com/en-us/library/office/ff193553.aspx), [proprietà Range.Cells] (https://msdn.microsoft. it/it/us/library/office/ff196273.aspx) – Jeeped

+0

Quindi quando si esegue 'Cell (1,1) .Value' è' Cell' considerato un tipo di sottoinsieme di 'Range'? Perché ho visto quelle proprietà _Range_, ma non mi ero reso conto che erano correlate a _Cell_ –

risposta

4

La parte .formula prende la formula all'interno della cella e .value prende solo il valore che è possibile visualizzare.

enter image description here

A1 = 2 
A2 = 4 
A3 = 6 

In A3 C'è una formula =A1+A2 se si utilizza .formula, a mettere la formula all'interno cellVal1 utilizzando cellVal1 = Cells(3, 1).Formula (che è uguale al Range("A3").formula) si ottiene =A1+A2, ma se si utilizza .value hai 6. Ricorda che se provi a memorizzare una stringa all'interno di una variabile di tipo int, ottieni un errore, perché la formula è una stringa.

SUGGERIMENTO: se si utilizza .formulaR1C1 si otterrà =R[-2]C+R[-1]C

+2

Big ** plus ** per evitare l'uso di ** Row ** come variabile come ha fatto il 'video'. – Jeeped

Problemi correlati