2017-11-12 15 views
1

Ich versuche, die Aktivierung von Arbeitsblättern zu vermeiden, da ich Berechnungen in meiner Tabelle durchführe. Ich stoße jedoch auf ein Problem. Diese Beschreibung reproduziert das Problem genau auf meiner Version von Excel 2016 (32-Bit).R1C1-Formelreferenzen werden verstümmelt, wenn das Arbeitsblatt nicht aktiv ist

Erstellen Sie eine neue Arbeitsmappe mit 2 Blättern: Sheet1 und Sheet2. Blatt1 ist leer. In Sheet2, in Zellen A2: A21, gebe ich einige ganze Zahlen ein. Ich habe dann ein Modul, das R1C1 Formel Format verwendet einige Formeln in Spalte G von Sheet2, mit diesem Code zu setzen:

Option Explicit 
Sub Test() 
Dim osht As Excel.Worksheet 
Dim NumRows As Integer 

Set osht = ThisWorkbook.Worksheets("Sheet2") 

NumRows = 20 
osht.Range("G1").Offset(1, 0).Resize(NumRows, 1).FormulaR1C1 = "=RC[-6]*5" 

End Sub 

ich ein Diagrammblatt hinzugefügt zu zeichnen, was in Sheet2 ist, mit einem Diagramm. Wenn Sie den Code entweder mit Sheet1 oder Sheet2 als aktivem Blatt ausführen, wird es funktionieren, und die Formeln in Sheet2!G2:G21 korrekt sind:

=RC[-6]*5 

Führen Sie den Code mit dem Diagrammblatt aktiv ist, und das funktioniert nicht. Die Formeln in Sheet2!G2:G21 wie folgt aussehen:

=R[-1]C[16372]*5 

Dies geschieht in Excel 2013 (32-bit) als auch.

Wohin gehe ich hier falsch? Oder ist das ein Excel-Fehler?

+0

eine der Formeln hat "Manual Other", die andere hat "MANUAL OTHER" .... ich würde sagen, dass Sie zwei Stück Code hier spielen, abhängig davon, welches Arbeitsblatt aktiv ist. – jsotola

+0

Geändert mein Beitrag, um das Problem mit einfachen Codefragment zu veranschaulichen. –

+0

Wenn die Berechnung immer in Spalte A angezeigt werden soll, versuchen Sie 'RC1 * 5'. –

Antwort

1

OK, löste dies. Ich brauche nicht R1C1 Referenzierung zu verwenden, um die Formeln in dem Bereich (den ich dachte, ich tat) zu korrigieren. Zurück zum regulären Formula vs FormulaR1C1 behoben das Problem.

Verwandte Themen