2012-09-05 4 views
3

이 코드는 제가 약간의 도움을 얻었지만 문제가 있거나 문제가 있다고 생각합니다 마지막 검색에서 개체가이 속성이나 메서드를 지원하지 않는다고 들었습니다. 아마도 쉽게 이해할 수 있지만 머리가 번쩍입니다. 왜 이런 일이 발생했는지에 대한 답변을 알고 있다면 도움을 받고 싶습니다. .Excel VBA, 오류 438 "개체가이 속성 또는 메서드를 지원하지 않습니다.

감사합니다.

Option Explicit 

Sub Update_Dakota() 

    Dim wsDAO As Worksheet    'Dakota OOR 
    Dim wsDAD As Worksheet    'Dakota Data 
    Dim wsDAR As Worksheet    'Dakota Archive 
    Dim wsPOR As Workbook    'New Workbook 
    Dim lastrow As Long, fstcell As Long 
    Dim strFile As String, NewFileType As String, filename As String 

    Set wsDAO = Sheets("Dakota OOR") 
    Set wsDAD = Sheets("Dakota Data") 
    Set wsDAR = Sheets("Dakota Archive") 


    With Application 
     .ScreenUpdating = False 
     .DisplayAlerts = False 
     .EnableEvents = False 
    End With 

    lastrow = wsDAD.Range("B" & Rows.Count).End(xlUp).Row + 1 

    With wsDAD 
     .Range("I2").Formula = "=COUNTIFS('Dakota OOR'!$B:$B,$A2,'Dakota OOR'!$D:$D,$C2, 'Dakota OOR'!$G:$G,$F2)" 
     .Range("J2").Formula = "=IF(I2,""Same"",""Different"")" 
     wsDAD.Range("I2:J2").Copy wsDAD.Range("I3:J" & lastrow) 
     wsDAD.Range("I:J").Calculate 
    End With 


    strFile = Application.GetOpenFilename() 
    NewFileType = "Excel Files 2007 (*.xls)" 
    Set wsPOR = Application.Workbooks.Open(strFile) 
    lastrow = wsPOR.Range("A" & Rows.Count).End(xlUp).Row + 1 

    wsPOR.Range("A2:G" & lastrow).Select 


End Sub 
+6

'lastrow = wsPOR.Range ("A"및 행되어야한다보십시오. Count) .End (xlUp) .Row + 1'에는 연결된 워크 시트가 없습니다. 'wsPOR'는 당신의 워크 북으로 설정됩니다. 범위는 워크 시트에서만 찾을 수 있습니다. 또한 다음 줄인 'wsPOR.Range ("A2 : G"& lastrow) .Select'는 통합 문서가 아니라 워크 시트를 참조해야합니다. –

답변

6

오류는 여기

lastrow = wsPOR.Range("A" & Rows.Count).End(xlUp).Row + 1 
입니다

wsPOR은 통합 문서이며 워크 시트가 아닙니다. 당신이 통합 문서의 "Sheet1의"작업하는 경우,이

lastrow = wsPOR.Sheets("Sheet1").Range("A" & _ 
      wsPOR.Sheets("Sheet1").Rows.Count).End(xlUp).Row + 1 

이 유사

wsPOR.Range("A2:G" & lastrow).Select 

wsPOR.Sheets("Sheet1").Range("A2:G" & lastrow).Select 
+1

+1을 대답했습니다. 나는 논평했다. 우리 둘 다 똑같이 말했다! –

+2

+1 만약'ws'를'Worksheet' 변수의 접두사로 사용한다면 다른 것을 사용하십시오 - 예. 'wb' -'Workbook' 변수의 접두사로 – barrowc

+0

나는 이것을하려고 생각하고있었습니다. 나는 작은 것들을 조정하기 전에 그것이 작동하도록하지만, 배럴당 싶었어 ...하지만 당신 말이 맞아. –

관련 문제