2016-01-06 13 views
5

ich ein tutorial zum Vergleichen von zwei Excel-Tabellen und stieß auf diese beobachten:Was ist worksheet.Cells (row, col) .Formula

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

In dem Video sagt er, dass dies den Wert der angegebenen zuordnet Zelle zum cellVal1. Ich habe nur Menschen ws.Cells(row, col).Value verwenden gesehen und kann nicht scheinen, etwas über .Formula in Bezug auf .Cells(<row>,<col>)

zu finden Was .Formula tut und es ist anders als .Value?

+4

Die Variable würde mit der Formel und nicht das Ergebnis der Formel enden. Also sagen wir in Zelle (1,1) gibt es eine Formel '= Summe (1,1)', der '.Value 'würde 2 zurückgeben, aber die' .Formula 'würde' = Summe (1,1) 'als a zurückgeben Zeichenfolge. –

+0

Hier sind einige Links in einer groben Reihenfolge der Relevanz zu Ihrer Frage: [Range.Value Eigenschaft] (https://msdn.microsoft.com/en-us/library/office/ff195193.aspx), [Range.Formula Eigenschaft ] (https://msdn.microsoft.com/en-us/library/office/ff838835.aspx), [Range.Text-Eigenschaft] (https://msdn.microsoft.com/en-us/library/office/ ff840217.aspx), [Eigenschaft des Range.Value2] (https://msdn.microsoft.com/en-us/library/office/ff193553.aspx), [Range.Cells-Eigenschaft] (https://msdn.microsoft. com/de-us/library/office/ff196273.aspx) – Jeeped

+0

Also wenn Sie 'Cell (1,1) .Value' ist 'Cell' betrachtet eine Art von Teilmenge von' Range'? Da ich diese _Range_ Eigenschaften sah, aber nicht erkannte, dass sie mit _Cell_ –

Antwort

4

Der .formula Teil nimmt die Formel in der Zelle und .value nehmen nur den Wert, den Sie sehen können.

enter image description here

A1 = 2 
A2 = 4 
A3 = 6 

In A3 es eine Formel ist =A1+A2 wenn Sie .formula verwenden, die Formel innerhalb cellVal1 mit cellVal1 = Cells(3, 1).Formula zu setzen (dh gleich Range("A3").formula) Sie erhalten =A1+A2, aber wenn Sie verwenden .value Sie bekam 6. Denken Sie daran, wenn Sie versuchen, einen String innerhalb eines Variables vom Typ int zu speichern, erhalten Sie einen Fehler, weil die Formel ein String ist.

TIPP: Wenn Sie .formulaR1C1 verwenden werden Sie bekommen =R[-2]C+R[-1]C

+2

Big ** plus **, um die Verwendung von ** Row ** als Variable zu vermeiden, wie es das Video gemacht hat. – Jeeped