2014-03-05 14 views
0

템플릿에 저장된 Excel 시트에서 작업 할 매크로를 작성하고 별도의 응용 프로그램에서 .xls 또는 .xlsx로 내 보냅니다. 이 매크로는 셀에 입력 된 수량에 따라 두 번 'x'번 복사하는 것입니다.Excel VBA : 런타임 오류 '1004': Range 클래스의 Select 메서드가 실패했습니다.

Sub Matrix_Quantity() 
Dim x As Integer 
x = ActiveWorkbook.Sheets("Inspection Sampling Matrix").Cells(11, 4) 
Dim n As Integer 
    n = x - 1 
    For numtimes = 1 To n 
     'Loop by using x as the index number to make x number copies. 
     Sheets("Inspection Report").Columns("F:G").Select 
     Selection.Copy 
     Selection.Insert Shift:=x1 + nToRight 
    Next 
End Sub 

내가 겪고있는 문제는 매크로가 템플릿 (.xlt)과 함께 실행될 때 잘 실행된다는 것입니다. 템플리트가 .xls 또는 .xlsx로 변환 되 자마자 작업중에 얼룩이 생겨 런타임 오류가 발생합니다. 매크로를 디버깅 할 때 그것은

Sheets("Inspection Report").Columns("F:G").Select 

내 느낌은 .XLS로 변환 할 때하지만 .XLT 통합 문서에서 열을 선택하거나 여전히 .XLT 통합 문서를 찾기 위해 노력하고있다 .xlsx '에 찾고되고 있다는 것입니다 강조 어떻게 또는 왜 그렇게하는지 확신 할 수 없습니다.

+1

매크로 검사가 실행되는 순간 '검사 보고서'가 활성화되어 있지 않기 때문입니다. [** Select/Active 문 ** 사용을 피하는 방법] (http://stackoverflow.com/questions/10714251/excel-macro-avoiding-using-select)을 읽어보십시오. 열 ("F : G") 열과 행 ("F : G")으로 코드를 대체 할 수 있습니다. + nToRight' –

+0

응답 해 주셔서 감사합니다. 코드를 플러그인하면 매크로를 실행해도 오류없이 오류가 발생합니다. "단순히 Microsoft Excel이 작동을 멈췄습니다"라는 오류가 발생합니다. – user3384820

+0

사실, 여기에 할 일이 무엇인지 이해할 수 없습니다 : 'Shift : = x1 + nToRight'? 그것은'Shift : = xlToRight'일까요? –

답변

0

나는 같은 종류의 문제가 있었고 simoco의 대답은 올바른 길로 나를 잡았습니다. 이 작동합니다 : 나는 숨겨진 탭 중 하나를했기 때문에

Sub Matrix_Quantity() 
Dim n As Integer 
Dim numtimes As Integer 
n = Sheets("Inspection Sampling Matrix").Cells(11, 4) - 1 
For numtimes = 1 To n 
    Sheets("Inspection Report").Columns("F:G").Copy 
    Sheets("Inspection Report").Columns("F:G").Insert Shift:=xlShiftToRight 
Next 
End Sub 
1

내가 그들의 통합 문서 이름을 가진 별도의 파일을 통합 문서를 분할로 저장하는 스크립트를 실행하려고 할 때, 나는 런타임 오류 1004 받았다.

분할 통합 문서 스크립트를 실행하기 전에 모든 탭의 숨김을 해제하십시오!

1

다른 참조 시트에 코드를 작성해야합니다.

모듈에 같은 것을 쓰십시오.

+0

줄을 추가했습니다 : 'code sheet.Activate (내가 사용하고있는 시트가 어디입니까?) sheet.Range ("A1"). 코드' 을 선택하십시오. 그러면 오류가 제거됩니다. 엑셀은 작업 시트를 잠시 동안 스위치를 밟기 전에 계속 진행하지만, 그다지 큰 문제는 아닙니다. –

관련 문제