VBA :

2017-03-12 19 views
1

나는이 코딩 방법을하고자하는 OFFSET 기능에서 세포의 위치를 ​​수정하는 방법 : 세포 이후VBA :

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

을 위치가 동일하지 않습니다, (I 예를 세포에 사용됩니다 세포 D342을 대표하는 300 + i, 5 + j).

나는 VBA 코드를 사용하여 세포를 해결하는 방법을 알고 싶어 내가) III)

감사합니다 :)

+0

당신이 무엇을 요구하는지 명확하지 않습니다. Excel 수식과 달리 VBA는 * 변수 *를 정의 할 수있는 가능성을 제공합니다. 애플리케이션을 수정하거나 변경하거나 애플리케이션에 적합한 모든 작업을 수행 할 수 있습니다. –

+0

@ A.S.H. 행을 수정하려면 D $ 342를 나타내는 코드를 작성하는 방법을 알고 싶습니다. 열을 수정하려면 $ D342를 코딩하는 방법을 알고 싶습니다. 두 가지를 모두 고치고 싶다면 $ D $ 342에 대한 코드를 작성하려면 어떻게해야합니까? – vbalearner

답변

0
를 행과 열을 해결하려면 열 문제를 해결하려면 행 II)를 해결하려면

범위가 있고 수식에 주소를 삽입하려는 경우 .Address을 사용할 수 있습니다. 이 속성은 매우 유연하며 가장 중요하게는 절대적 (고정) 또는 상대적 (이동시 이동 가능)이 원하는지 여부를 포함하여 여러 가지를 제어 할 수 있습니다.

문제의 원인을 막으려면 .Address methodRowAbsoluteColumnAbsolute 매개 변수를 사용할 수 있습니다. 예 : 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