スプレッドシートで計算を行うときにワークシートをアクティブ化しないようにしようとしています。しかし、私は問題に遭遇しています。この説明は、私のバージョンの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のバグですか?
"Manual Other"、もう一つは "MANUAL OTHER" ....ここでは、どのワークシートがアクティブであるかに応じて2つのコードを演奏していると言います。 – jsotola
簡単なコード断片の問題を説明するために投稿を変更しました。 –
計算を常にA列の 'RC1 * 5'を試してみたい場合。 –