2012-09-06 5 views
5

이제는 통합 문서를 설정 명령에 하드 코딩 한이 위치에서 내 통합 문서를 설정해야합니다. 이렇게 할 수있는 방법이 있는지 궁금합니다. 그것은 어디에 액체입니까? 따라서이 코드가 어디에 있든 (다른 통합 문서에서) 코드는 새로운 환경에 적응할 것입니다.Excel VBA의 활성 통합 문서의 설정 값

의미가 있습니까?

아래는 내가 지금 사용하고있는 것입니다. 내가하고 싶은 것은 ActiveWorkbook이거나 그 대신에 사용 된 것입니다. 이 코드는 중간이 아닌 코드의 시작 부분에 설정됩니다.

Set wbOOR = Application.Workbooks("Open Order Report.xlsm")

답변

20

당신은 Set wbOOR = ThisWorkbook

그냥 명확히하기 위해 아마 후있어

ThisWorkbook 항상 코드가 활성화되어있는 통합 문서를 참조합니다

ActiveWorkbook에있는 통합 문서를 참조합니다

여러 통합 문서를 다룰 때 이것을 사용하십시오. 그것은 정말로 당신이 무엇을 달성하기를 원하는가에 달려 있습니다.

Set wbOOR = ActiveWorkbook 
+0

+1 차이점을 설명하고 언제 어디서 가장 적절할지, 특히 OP가 다소 모호하기 때문에. –

+1

필자는 개인적으로 사용자 GUI 이벤트를 캡처하고 시도하고 피하는 것을 제외하고는 결코 'ActiveWorkbook'을 사용하지 않습니다. – user3357963

+3

동의합니다. 나는 Set wkbMain = ThisWorkbook 또는 Workbooks ("Main")''Set wkbProcess = Workbooks ("Process")와 같은 변수에 필요한 모든 워크 북을 설정하는 경향이있다. 가장 안전한 방법은 'ActiveWorkbook'이 털이있을 수 있고 예상치 못한 경우 코드를 이동시키는 것입니다. –

2

당신이 필요합니다.

Dim Workbk as workbook 
Set Workbk = thisworkbook 

이제 모든 프로그램은 포함 된 매크로 통합 문서에만 적용됩니다.

+0

우우는 그것을 가지고 있다고 생각합니다 ... –

+0

그게 전부 야? 당신은 지금까지 Excel VBA로 가면서, 내가 여러 가지 일을 할 수있는 방법이 있다는 것을 알고 있습니다. 때때로 나는 때때로 가장 간단한 방법을 잊어 버리는 것 같습니다. 감사! –

+0

질문 다시 읽기 ActiveWorkbook 또는 ThisWorkbook이 맞는지 확실하지 않습니다. –

0

이 시도이 전부입니다

관련 문제