2017-12-06 1 views
1

셀 참조하는 데 문제가 있고 솔루션이 있는지 알 수 없습니다.Excel VBA : 셀 참조하는

VBA 코드 나 구문을 사용하여 다른 셀에 셀에 대한 참조를 쓰고 있어요 사용 :

activecell.formula = "=" & Cells(A1).address 

가 지금은 세포의 수천이 수식을 복사해야합니다. 각 셀은 순차적으로 cell (A1,A2,A3....A120..)을 참조해야합니다.

내가 가진 문제는

Cells(A1).address

를 사용하여가 Cells(A1)를 해결한다는 것입니다. 자동 채우기 기능을 사용할 때 셀 수천 개의 셀이 모두 동일한 cells(A1)을 참조하지만 동적 인 참고가 필요할 때마다 다음을 참조해야합니다. loop 및 고정 참조를 사용하여 각 셀에 수식을 작성하면 코드를 실행하는 데 몇 시간이 걸릴 수 있습니다 (앞에서 설명한 것처럼 수천 개의 셀이 있습니다)

그러면 자동 필 기능을 사용해야합니다. 상대 참조 형식을 사용하십시오.

activecell.formulaR1C1 = ... 

그러나 셀 (A1)은 항상 내 활성 셀과 같은 거리에 있지 않습니다.

via VBA 내 activecell에서 얼마나 걸릴지 계산할 수 있지만이 데이터를 표기법 R1C1과 함께 사용하려면 어떻게해야합니까?

때문에,

row.count 

기능을 사용하면 내가있는 내가 (이 시간)을 참조하려는 첫 번째 셀을 계산할 수 있다고 말할 수 행 (100)과 열 (3) 그래서에, 내가 가진 : lastrow를 = 100, column = 3. 행 100은 매크로를 실행할 때마다 다릅니다. 물론

cell(5,5): =cells(100,3) 
cell(6,5): =cells(101,3) 
cell(7,5): = cells(102,3) 
..... 
cell(10005,5): = cells(10100,3) 

, 나는 ': 나는 다음과 같은 결과가 필요

Sub problemsolved() 

Dim lastrow as string 
Dim RowL as string 
Dim CoL as string 

lastrow = activesheet.cells(rows.count, 1).End(xlUp).row 


cells(5,5).select 

Rol = lastrow - 5 
Col = 3 -5 


activecell.formulaR1C1 = "=R[Rol]C[Col]" 

selection.autofill Destination:=Range(cells(5, 5), cells(10005, 5)) 

end sub 

가정 lastrow은 = 100 입니다 : 내 activecell이 내가 사용하고자하는 것입니다 cells(5,5)

입니다 구문을 시도했습니다.

activecell.formulaR1C1 = "=R[lastrow]C[3]" 

하지만 작동하지 않습니다. 어떻게 할 수 있습니까? 누구나 아이디어가 있습니까?

감사

+0

사람들이 완벽하게이 모든 읽기에는 너무 바쁜 가정합니다. "작동하지 않는 것"도 말해야합니다. 즉, 무엇을하고 싶습니까, 어떤 것을 시도했는지, 그리고 어떤 결과를 얻었습니까? – jdv

답변

0

사용 :

자동 완성

에 대한

With ActiveSheet 
    .Range(.Cells(5,5),.Cells(10005,5)).FormulaR1C1 = "=R[" & RowL & "]C[" & col & "]" 
End With 

필요가 없습니다 그래서

Sub problemsolved() 

Dim lastrow as Long 
Dim RowL as Long 
Dim CoL as Long 

lastrow = activesheet.cells(rows.count, 1).End(xlUp).row 



Rowl = lastrow - 5 
Col = 3 -5 


With ActiveSheet 
    .Range(.Cells(5,5),.Cells(10005,5)).FormulaR1C1 = "=R[" & RowL & "]C[" & col & "]" 
End With 

end sub 
+0

안녕하세요. 스캇, 많은 도움을 주셔서 감사합니다. 이것은 정확히 내가 찾고 있었던 것이고, 상대 표기법을 사용하는 방법이지만 일부 변수를 사용하는 방법이기도합니다. 오늘 내 인생을 더 편하게 해줬 어. 많은 많은 고마워! – Quadra