2011-07-18 2 views
1

현재 워크 시트와 다른 워크 시트를 모두 참조하는 기본 수식으로 셀을 채우려고합니다. 다음 코드로VBA에서 생성 된 수식이 포함 된 시트 간의 참조

내가 셀에 입력하려 공식은 기본적으로

... ='Sheet2'A(j)/B(i) :

For i = 1 To 5 
    For j = 1 To 5 
     With shOut.Cells(i,j) 
      .formula = "='Sheet2'" & Cells(j,1)).Address & "/" & Cells(i,2).Address 
     End With 
    Next j 
Next i 

나는에 문제가 있어요 부분은 시작에 시트 참조입니다; .formula에서 실행하면 오류가 발생합니다.

그러나 '='기호를 제거하고 .Value에 출력하면 수식이 아니라는 점을 제외하고 내가 원하는 것을 인쇄합니다.

답변

4
  1. .formula으로 시작하는 행에 )이 너무 많습니다.
  2. 당신은 시트 후 ! 누락 :

    .formula = "=Sheet2!" & Cells(j,1).Address & "/" & Cells(i,2).Address 
    
3

당신은 어떤의 주소를 직접 범위를 구성 할 필요가 없습니다 - 당신은 단지 그렇게함으로써 잠재적 인 문제에 열려있는 자신을 떠날거야 .

예를 들어, cularis (완벽하게 좋은) 대답에서 시트 이름 주변에는 작은 따옴표가 없습니다. 이 경우에는 필요하지 않지만 시트 이름에 공백이있는 경우 을 수행하면에 따옴표가 필요합니다. (요점은 당신이이 모든 것을 스스로 알지 않아야한다는 것입니다.

Address()을 호출 할 때 External:=True을 지정하면 시트 이름이 포함 된 주소가 표시됩니다. 나는 이런 식으로 뭔가를 할 거라고 : Excel에서 단순화로 경우에 당신은 아마 단지, 여분의 시간이 해치지 않을 것이라는 워크 시트 중 하나에 대한 External 매개 변수를 사용해야하지만 그 일을하는

Dim oWorksheet1 As Worksheet 
Dim oWorksheet2 As Worksheet 

... 

.Formula = oWorksheet1.Cells(j,1).Address(External:=True) & "/" & oWorksheet2.Cells(i,2).Address(External:=True) 

주 어쨌든 당신을위한 공식.

관련 문제