2017-12-27 2 views
2

간단한 질문. 다음 코드는 정상적으로 작동합니다.vba : 모든 시트에 같은 코드를 사용하십시오

Dim hoja as worksheet 
For Each hoja In Workbooks("Origen.xlsx").Worksheets 
Msgbox hoja.name 
next 

그러나 다음 코드는 작동하지 않습니다. 아무도 왜 그런 말을하고 작동하게 할 수 있습니까?

Dim hoja as worksheet 
For Each hoja In Workbooks("Origen.xlsx").Worksheets 
Range("a1:a2").copy Destination:=Range("a3:a4") 
next 

두 번째 코드는 시트 중 하나에서만 복사/붙여 넣기를 수행하지만 전부는 수행하지 않습니다. 도와주세요. 나는 그런 간단한 일로 너무 좌절한다. 감사합니다.

답변

0

Range 대신 hoja.Range을 시도하십시오.

+0

감사합니다 많이! – Mario

1

Range 개체는 정규화되지 않은 경우 항상 활성 시트를 참조합니다. 당신이 다른 시트마다 붙여 복사하려면
, 아래의 코드를 사용

Dim hoja as worksheet 
For Each hoja In Workbooks("Origen.xlsx").Worksheets 
hoja.Range("a1:a2").copy Destination:=hoja.Range("a3:a4") 
next 
+0

Branislav, 정말 간단합니다, 아직도 나는 그것을 볼 수 없습니다 : S. 감사!! – Mario

+0

@Mario 환영합니다. 명백한 것들은 간과하기 쉽습니다. –

관련 문제