45

関数としてFormulaR1C1を見てきましたが、これはどのように機能しますか? 行 1 列 1 としてインターネット上で言われていることは理解できますが、実際にどのように機能させるのでしょうか? FormulaR1C1を使用した結果はどうなりますか?

また、シートの特定のポイントから開始するように変更できますか、それとも常に R1C1 になりますか? では、それはFormulaR2C3でしょうか?

4

3 に答える 3

47

FormulaR1C1 は Formula と同じ動作をしますが、A1 注釈の代わりに R1C1 スタイルの注釈のみを使用します。A1 注釈では、次を使用します。

Worksheets("Sheet1").Range("A5").Formula = "=A4+A10"

R1C1 では、次のように使用します。

Worksheets("Sheet1").Range("A5").FormulaR1C1 = "=R4C1+R10C1"

行 1 列 1 には作用しません。対象のセルまたは範囲に作用します。列 1 は列 A と同じであるため、R4C1 は A4 と同じであり、R5C2 は B5 などです。

コマンドは名前を変更せず、対象のセルを変更します。R2C3 (C2 とも呼ばれます) の例:

Worksheets("Sheet1").Range("C2").FormulaR1C1 = "=your formula here"
于 2012-10-31T19:25:18.380 に答える
27

vba の外で formular1c1 を使用する方法について、私のブログからの情報を次に示します。

数式を書き終えて、それをスプレッドシート全体にコピーし、すべてを書式設定したところで、参照を絶対にするのを忘れていたことに気付きました。すべての数式はセル B2 を参照する必要がありましたが、今ではすべてが異なるセルを参照しています。

1 つは B5、もう 1 つは C12、3 番目は D25 などを持っていることを考慮して、セルの検索/置換をどのように実行しますか?

簡単な方法は、参照スタイルを R1C1 に更新することです。R1C1 参照は相対位置で機能します。R は行、C は列を示し、R と C に続く数字は相対位置 ([ ] の間) または絶対位置 ([ ] なし) のいずれかです。

例:

  • R[2]C は、数式が入っているセルの 2 行下のセルを指します。
  • RC[-1] は、1 列左のセルを参照します。
  • R1C1 は、最初の行と最初のセル ($A$1) のセルを参照します。

何が問題なのですか?さて、この投稿の最初に最初の式を書き戻したとき、B2 は書き込んだセルの 4 行上のセル、つまり R[-4]C でした。上下にコピーすると、A1 参照が変更されますが、R1C1 参照は変更されません。スプレッドシート全体を通して、それは R[-4]C です。R1C1 参照スタイルに切り替えると、R[-4]C を R2C2 ($B$2) に置き換えることができ、単純な検索/置換を使用して、一気に実行できます。

于 2012-10-31T19:28:49.370 に答える
2

.FormulaR1C1 の最も価値のある機能は、そのスピードです。たとえば、一部のデータをシートに入力する非常に大きなループがいくつかある場合と比較して、実行していることを .FormulaR1C1 フォームに変換できる場合。次に、たとえば myrange.FormulaR1C1 = "my specific formulaa" などの単一の操作は、目がくらむほど高速です (1000 倍高速になる可能性があります)。ループやカウントはありません - 高速で範囲を埋めるだけです。

于 2013-10-28T14:26:20.153 に答える