2011-03-12 8 views
1

이 런타임 오류 '1004'가 있습니다. -이 명령을 실행하려면 소스 데이터가 적어도 두 행 이상 필요합니다. 한 행의 선택에서만 명령을 사용할 수 없습니다. 다음을 시도해보십시오. 고급 필터를 사용하는 경우 데이터 행이 두 개 이상 포함 된 셀 범위를 선택하십시오. 그런 다음 고급 필터 명령을 다시 클릭하십시오.피벗 테이블 만들기

- :

pvc.CreatePivotTable TableDestination:=Worksheets("TABLE").Range("A1"), _ 
TableName:="INFO", DefaultVersion:=xlPivotTableVersion12 

나는이 코드를 실행하려고 해요 -이 : 피벗 테이블 보고서 또는 피벗 차트 보고서를 만드는 경우,

내가에서 언급 한 오류가 발생했습니다 [여기가 정지]을 입력
Sub CreateTable() 
Dim lastRow As Long 
Dim pvc As PivotCache 
lastRow = ActiveSheet.Cells(Rows.Count, 6).End(xlUp).Row 
    ActiveWorkbook.Names.Add Name:="Database", RefersTo:="=DATA!$G$1:$K$" & lastRow 
Set pvc = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ 
     "Database", Version:=xlPivotTableVersion12) 
pvc.CreatePivotTable TableDestination:=Worksheets("TABLE").Range("A1"), _ 
TableName:="INFO", DefaultVersion:=xlPivotTableVersion12 
    Sheets("TABLE").Select 
    Cells(1, 1).Select 
    ActiveWorkbook.ShowPivotTableFieldList = True 
    With ActiveSheet.PivotTables("INFO").PivotFields("MODEL") 
     .Orientation = xlRowField 
     .Position = 1 
    End With 
    With ActiveSheet.PivotTables("INFO").PivotFields("TYPE") 
     .Orientation = xlRowField 
     .Position = 2 
    End With 
    ActiveSheet.PivotTables("INFO").AddDataField ActiveSheet.PivotTables(_ 
    "INFO").PivotFields("GRADE"), "Sum of GRADE", xlSum 
    ActiveSheet.PivotTables("INFO").AddDataField ActiveSheet.PivotTables(_ 
    "INFO").PivotFields("SIZE"), "Sum of SIZE", xlSum 
    ActiveSheet.PivotTables("INFO").AddDataField ActiveSheet.PivotTables(_ 
    "INFO").PivotFields("QTY"), "Sum of QTY", xlSum 
    With ActiveSheet.PivotTables("INFO").PivotFields("MODEL") 
     .Orientation = xlColumnField 
     .Position = 2 
    End With 
    With ActiveSheet.PivotTables("INFO").PivotFields("TYPE") 
     .Orientation = xlColumnField 
     .Position = 3 
    End With 
    With ActiveSheet.PivotTables("INFO").PivotFields("Sum of GRADE") 
     .Orientation = xlPINFOField 
     .Position = 1 
    End With 
    With ActiveSheet.PivotTables("INFO").PivotFields("Sum of SIZE") 
     .Orientation = xlRowField 
     .Position = 1 
    End With 
    ActiveWorkbook.ShowPivotTableFieldList = False 
    Range("B3").Select 
    ActiveSheet.PivotTables("INFO").CompactLayoutColumnHeader = "MODEL" 
    Range("A5").Select 
    ActiveSheet.PivotTables("INFO").CompactLayoutRowHeader = "SIZE" 
    Range("A1").Select 
    ActiveSheet.PivotTables("INFO").PivotFields("GRADE").Caption = "GRADE" 
    Cells.Select 
    Cells.EntireColumn.AutoFit 
    Columns("B:BB").Select 
    Selection.Style = "Comma" 
    Cells.Select 
    Cells.EntireColumn.AutoFit 
    Range("C1").Select 
End Sub 

Pls 도움.

감사합니다.

그것은이 오류가 발생하는 이유를 표시

답변

0

이 네 번째 행에 기인한다 :

lastRow = ActiveSheet.Cells(Rows.Count, 6).End(xlUp).Row 

이의 모습으로, 당신은 열을보고하여 "DATA"시트에서 데이터의 마지막 행을 찾고있다 원본 데이터가 세포 G1에있는 경우,

ActiveWorkbook.Names.Add Name:="Database", RefersTo:="=DATA!$G$1:$K$" & lastRow 

자 : 6. 이제 우리는 당신이이 결합하는 것을 보면 K를 ** 다음 :

ActiveSheet.Cells(Rows.Count, 6).End(xlUp).Row 

은 6 열에 데이터가 없지만 위의 행에서 데이터가 7 열 ("G")로 시작하는 것으로 보이는 경우가 아니라면 항상 1을 반환합니다. 따라서이 기능을 사용하려면 네 번째 행을 다음과 같이 변경해야합니다.

lastRow = ActiveSheet.Cells(Rows.Count, 7).End(xlUp).Row