2013-03-23 3 views
-1

오류를 컴파일하는 데 오류가 발생했습니다. 나는이 서브 루틴에서 일을 단순화하려고 노력하고있다. 왜냐하면 내가 엑셀 ​​시트에서 제어 할 수 있기를 원하는 많은 설정이 있기 때문에, 많은 호출이 필요하며, 더 효율적인 방법을 찾고있다. 변수로 시트를 저장할 때 컴파일 오류가 발생했습니다.

나는 내가

Build.Range("B:B").Column.Select.AutoFit 

나에게없는 일으켜 첫 번째 인스턴스에게 그러나 필요한 변수에 대한 통합 문서 및 시트를 할당하고 난 셀 범위를 선택에서 당겨야 시트의 변수를 사용하여 시도 "메서드 또는 데이터 멤버를 찾을 수 없습니다"

동일한 모듈 내에 포함 된 모든 다른 서브 루틴을 호출하고 필요한 경우 게시 할 수 있지만 기본적으로 파일을 만들고 위치를 지정합니다. 이 서브 루틴에서 제공 한 설정을 기반으로 슬라이드

Sub BuildTemplate() 
Dim vNewPrimaryTemplatePath As String 
Dim vDPI As Integer 
Dim WB As Workbook 
Dim Settings As Worksheet 
Dim Build As Sheets 
Dim Entry As Sheets 

'Set Global Variables 
Set WB = Workbooks("tool.xlsm")    'Set this to the name of the excel file 
Set Settings = WB.Sheets("SETTINGS")  'Set this to the name of the settings tab 
Set Build = WB.Sheets("BUILD")    'Set this to the name of the build tab 
Set Entry = WB.Sheets("ENTRY")    'Set this to the name of the entry tab 

    vDPI = Settings.Cells(2, "B").Value 

'Adjust column sizes 
    Build.Range("B:B").Column.Select.AutoFit 
    Build.Range("D:D").Column.Select.AutoFit 
    Build.Range("F:F").Column.Select.AutoFit 
    Build.Range("H:H").Column.Select.AutoFit 

'Create Template Files 
MoveFiles 
'Open newly created Template File 
Dim PPT As PowerPoint.Application 
Set PPT = New PowerPoint.Application 
    PPT.Visible = True 
    PPT.Presentations.Open Filename:=vNewPrimaryTemplatePath 
'Add Title Block 
Call AddShape(False, "BUILD", Settings.Range("E2"), Settings.Range("E3"), Settings.Range("E4"), Settings.Range("E5"), Settings.Range("E6")) 

'Add Delivery Block 
Call AddShape(False, "BUILD", Settings.Range("E9"), Settings.Range("E10"), Settings.Range("E11"), Settings.Range("E12"), Settings.Range("E13")) 

'Add Address Block 
Call AddShape(False, "BUILD", Settings.Range("E16"), Settings.Range("E17"), Settings.Range("E18"), Settings.Range("E19"), Settings.Range("E20")) 

'Add Items 
Call AddShape(False, "BUILD", Settings.Range("H2"), Settings.Range("H12"), Settings.Range("H10"), Settings.Range("H16"), Settings.Range("H17")) 
Call AddShape(False, "BUILD", Settings.Range("H3"), Settings.Range("H13"), Settings.Range("H10"), Settings.Range("H16"), Settings.Range("H17")) 
Call AddShape(False, "BUILD", Settings.Range("H4"), Settings.Range("H14"), Settings.Range("H10"), Settings.Range("H16"), Settings.Range("H17")) 
Call AddShape(False, "BUILD", Settings.Range("H5"), Settings.Range("H15"), Settings.Range("H10"), Settings.Range("H16"), Settings.Range("H17")) 
Call AddShape(False, "BUILD", Settings.Range("H6"), Settings.Range("H12"), Settings.Range("H11"), Settings.Range("H16"), Settings.Range("H17")) 
Call AddShape(False, "BUILD", Settings.Range("H7"), Settings.Range("H13"), Settings.Range("H11"), Settings.Range("H16"), Settings.Range("H17")) 
Call AddShape(False, "BUILD", Settings.Range("H8"), Settings.Range("H14"), Settings.Range("H11"), Settings.Range("H16"), Settings.Range("H17")) 
Call AddShape(False, "BUILD", Settings.Range("H9"), Settings.Range("H15"), Settings.Range("H11"), Settings.Range("H16"), Settings.Range("H17")) 

'Add Summaries 
    AddSummary 

'Save & Close 
    ActivePresentation.SaveAs Filename:=vNewPrimaryTemplatePath, FileFormat:=ppSaveAsDefault 
    ActivePresentation.Close 

End Sub 

다시 한 번 감사드립니다 어떤 도움

답변

3

당신은를 선택 필요가 없습니다 당신이 간단하게 할 수 있습니다

Build.Columns(2).AutoFit 

을하지만 두 번째보기에, 당신은 당신의 변수를 구축하고 항목 misdefined 한 그들은 Worksheet 개체가 아니고 Sheets 컬렉션이 아닙니다.

+0

괜찮아요,하지만 당신이 제안한 것처럼 리팩토링 한 후에도 똑같은 오류가 나옵니다. 그것은 그 (것)들을 사용하기 위하여 모두를 다시 쓴 후에서만 오류가 소개 되었기 때문에 그들이 놓인 워크 북 및 시트 변수가 형태가있는 것으로부터 형태가있는 것 같습니다. – midaym

+0

답변이 수정되었습니다. 미안 나는 그것을 처음으로 발견하지 않았다. – grahamj42

+0

굉장한 추측 나는 약간의 잠을 필요로한다 그 항상 작은 물건 thks – midaym