2017-03-12 11 views
1

のセル位置を修正する私はこれを符号化する方法たい:VBA:どのOFFSET関数

OFFSET($F$52, 0, ($D342 - $D$342),1,1) 

細胞の位置が同じではないので、セルD342を表すために、私は、例えば細胞のため使用します( 300 + i、5 + j)。

私はVBAコードを使用して細胞を固定する方法を知りたい: i)が III)

感謝:)

+0

あなたが求めていることは明確ではありません。 Excelの数式とは異なり、VBAでは*変数*を定義することができます。アプリケーションを修正したり、変更したり、アプリケーションに合った方法で修正したりできます。 –

+0

@ A.S.H。行を修正したい場合は、D $ 342を表すコードを作成する方法を知りたいと思います。列を修正したい場合は、$ D342のコード方法を知りたいです。もし私が両方を修正したいのであれば、$ D $ 342のコードを書くにはどうすればいいのですか? – vbalearner

答えて

0
を行と列を修正するには、列を修正するには、行 II)を修正するには

範囲があり、そのアドレスを数式に挿入する場合は、.Addressを使用できます。このプロパティは非常に柔軟性があり、物事を絶対的(固定)にするか相対的に(コピー時に移動可能に)するかなど、多くのことを制御できます。

問題のために、.Address methodのパラメータRowAbsoluteColumnAbsoluteを使用することができます。たとえば、Cells(300 + i, 5 + j).Address(RowAbsolute=False)です。これらのパラメータのデフォルト値はTrueです。

次のコードスニペットでその方法を説明します。説明が含まれています。

Sub TestUsingAddress() 
    Dim r As Range 
    Set r = Sheet1.Cells(3, 4) ' (D3) 

    ' You can control the parameters RowAbsolute and ColumnAbsolute 
    Debug.Print r.address      ' $D$3 (default) 
    Debug.Print r.address(ColumnAbsolute:=False) ' D$3 
    Debug.Print r.address(RowAbsolute:=False) ' $D3 
    Debug.Print r.address(RowAbsolute:=False, ColumnAbsolute:=False) ' D3 

    'and you can get the sheet's name with the address using the External parameter 
    Debug.Print r.address(external:=True) ' [SOTest.xlsm]Sheet1!$D$3 

    ' You can also get R1C1 format using the ReferenceStyle Parameter 
    Debug.Print r.address(ReferenceStyle:=xlR1C1) ' R3C4. default format is xlA1 
End Sub 
+1

お手伝いいただき、ありがとうございます@ A.S.H! – vbalearner