マクロを任意の範囲のシートと互換性を持たせるために、別のシートを明示的に参照せずに参照しようとしています。私は喜んで(ActiveSheet.Index +/- 1)シートを切り替えるために使用していますが、それは数式を入力することになると、私は今まで私を助けるために何かを見つけることができません。vbaの異なるシートを動的に参照
私はこれまで私が見つけたマクロ使用しているダウンしたルート:セルに入力されたとき、次のシートの名前を参照http://www.cpearson.com/excel/sheetref.htm
を。例えば= NextSheetName()は 'Sheet 2'を返します。
私はその結果を!それをnexxxtsheetとして定義します。私は式
ActiveCell.FormulaR1C1 = "=" & nexxxtsheet & " "A1"
を入力したときに
は、だから私は、セルの式を有することを期待:!=「次のシートの名前を」A1
それは=「次のシートの名前」を返しますが! 'A1'
違いは、A1の周りの引用 - 式を役に立たなくすることです。私はVBAの方がむしろ新しく、なぜこのようなことが起こるのか分かりません。直接参照なしでシートを切り替えるために使用している方法は、より良い用語の欠如ではなく、クラックハウススタイルです。シート間をどのように切り替えるか、または式を有効にするための修正方法についての提案は非常に公開されています。
ありがとうございます!
'Dim nexxxtsheet As String'を定義し、' nexxxtsheet = "Sheet2" '(たとえば)を設定し、' Formula' 'FormulaR1C1'ではなく):' ActiveCell.Formula = "="&nexxxtsheet& "!" & "A1" ' 'ActiveCell'の使用を避ける方が良いです。 –
本当にありがとうございます。私が新しくなったので、式とFormula R1C1の違いを説明できるかどうか疑問に思っていましたか? –
@LukasLjungstrom R1C1は、(** R ** owおよび** C **列番号によって)細胞を参照する別の方法です。例えば、R2C3は通常C2として知られているセルです。 '.FormulaR1C1'は、これらの参照で式を設定するために使用されます(Excelは後でそれらを変換します)ので、A1をセル参照として理解しません。 R1C1リファレンススタイルを検索すると、多くの情報が得られます。 – arcadeprecinct