2017-11-12 10 views
1

スプレッドシートで計算を行うときにワークシートをアクティブ化しないようにしようとしています。しかし、私は問題に遭遇しています。この説明は、私のバージョンのExcel 2016(32ビット)で問題を正確に再現します。ワークシートがアクティブでない限り、R1C1の数式参照が文字化けしています

Sheet1とSheet2の2枚の新しいブックを作成します。 Sheet1は空白です。 Sheet2では、セルA2:A21では、いくつかの整数を入れます。私はチャートと、シート2であるものをプロットするグラフシートを追加

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 

:私は、このコードで、シート2の列Gに、いくつかの数式を入れてR1C1式の形式を使用するモジュールを追加しました。あなたがアクティブなシートとシート1またはSheet2のいずれかを使用してコードを実行すると、それが正常に動作します、とSheet2!G2:G21で数式が正しいです:

=RC[-6]*5 

は、アクティブなグラフシートを使用してコードを実行し、これは動作しません。 Sheet2!G2:G21内の式は次のようになります。これは、同様エクセル2013(32ビット)で行わ

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

ここで私は間違っていますか?またはこれはExcelのバグですか?

+0

"Manual Other"、もう一つは "MANUAL OTHER" ....ここでは、どのワークシートがアクティブであるかに応じて2つのコードを演奏していると言います。 – jsotola

+0

簡単なコード断片の問題を説明するために投稿を変更しました。 –

+0

計算を常にA列の 'RC1 * 5'を試してみたい場合。 –

答えて

1

OK、これを解決しました。私はR1C1参照を使用して範囲内の正しい式を取得する必要はありません(これは私がやったと思いました)。通常のFormula vs. FormulaR1C1に戻って問題を修正しました。

関連する問題