数据透视表系列讲座9/15---打印
来源:百度文库 编辑:神马文学网 时间:2024/07/08 22:21:42
数据透视表系列讲座9/15---打印2008-02-08 16:26
打印 数据透视表页字段中的每个数据项
下面的代码将能够实现打印页字段中的每个数据项的功能(假定为一个页字段).请使用打印预览测试. 准备打印时, 请去掉 ActiveSheet.PrintOut代码前的单引号, 并在代码ActiveSheet.PrintPreview前添加一个单引号.
Sub PrintPivotPages()
'打印数据透视表一个页字段下的每个数据项
'假设只有一个页字段存在
On Error Resume Next
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Set pt = ActiveSheet.PivotTables.Item(1)
For Each pf In pt.PageFields
For Each pi In pf.PivotItems
pt.PivotFields(pf.Name).CurrentPage = pi.Name
' ActiveSheet.PrintOut '使用这个代码打印
ActiveSheet.PrintPreview '使用这个代码预览
Next
Next pf
End Sub
打印数据透视表页字段下每个数据项的透视图
下面的代码将能够实现打印页字段中的每个数据项的透视图功能(假定为一个页字段).请使用打印预览测试. 准备打印时, 请去掉 ActiveSheet.PrintOut代码前的单引号, 并在代码ActiveSheet.PrintPreview前添加一个单引号.Sub PrintPivotCharts()'prints a chart for each item in the page fieldDim pt As PivotTableDim pf As PivotFieldDim pi As PivotItemSet pt = ActiveChart.PivotLayout.PivotTableFor Each pf In pt.PageFieldsFor Each pi In pf.PivotItemspt.PivotFields(pf.Name).CurrentPage = pi.Name' ActiveSheet.PrintOutActiveSheet.PrintPreview '打印预览测试NextNext pfEnd Sub打印数据透视表的每个页数据项 – 多个页字段
下面代码将完成打印数据透视表页数据项的每个组合. 如果 PrintFlag 不设置为 true, 描述信息将被写入PageItemList工作表.Option Compare TextPublic mrow As IntegerPublic PrintFlag As Boolean'====================================================================Sub PrintAllPages()'from code posted by Tom Ogilvy'September 5 2004Dim holdSettingsDim ws As WorksheetDim wsPT As WorksheetSet ws = Worksheets("PageItemList") 'sheet for page itemsSet wsPT = Worksheets("Pivot") 'sheet with PivotTablemrow = 0If MsgBox("Print?", vbYesNo, "Print?") = vbYes ThenPrintFlag = TrueElsePrintFlag = FalseMsgBox "Page field items will be listed on sheet " & ws.NameEnd IfIf Not PrintFlag Thenws.Cells(1, 1).CurrentRegion.ClearEnd IfSet PvtTbl = wsPT.PivotTables(1)wsPT.ActivateIf PvtTbl.PageFields.Count = 0 ThenMsgBox "The PivotTable has no Pages"Exit SubEnd IfWith PvtTblReDim holdSettings(1 To .PageFields.Count)I = 1For Each PgeField In .PageFieldsholdSettings(I) = PgeField.CurrentPage.NameI = I + 1PgeField.CurrentPage = PgeField.PivotItems(1).NameNext PgeFieldEnd WithPvtPage = 1PvtItem = 1DrillPvt oTable:=PvtTbl, Ipage:=PvtPage, wksht:=wsI = 1For Each PgeField In PvtTbl.PageFieldsPgeField.CurrentPage = holdSettings(I)I = I + 1Next PgeFieldEnd Sub'====================================================================Sub DrillPvt(oTable, Ipage, wksht)'Debug.Print "in DrillPvt, page:=" & Ipage & " Page Item: " & _' oTable.PageFields(Ipage).CurrentPage & " " & mrowIf Ipage = oTable.PageFields.Count ThenWith oTableFor I = 1 To .PageFields(Ipage).PivotItems.Count.PageFields(Ipage).CurrentPage = _.PageFields(Ipage).PivotItems(I).Namemrow = mrow + 1slist = ""For j = 1 To .PageFields.Countslist = slist & .PageFields(j).CurrentPage & " "Next j' Debug.Print slistIf PrintFlag Then'' ActiveSheet.PrintOut 'print the sheetActiveSheet.PrintPreview 'preview -- for testingElseFor j = 1 To .PageFields.Countwksht.Cells(mrow, j).Value = _.PageFields(j).CurrentPage.NameNext jEnd IfNext IEnd WithFor I = oTable.PageFields.Count - 1 To 1 Step -1For j = 1 To oTable.PageFields(I).PivotItems.CountIf oTable.PageFields(I).CurrentPage = _oTable.PageFields(I).PivotItems(j).Name ThenCurrItem = jExit ForEnd IfNext jIf CurrItem <> oTable.PageFields(I).PivotItems.Count ThenoTable.PageFields(I).CurrentPage = _oTable.PageFields(I).PivotItems(CurrItem + 1).NameIpage = I + 1DrillPvt oTable, Ipage, wkshtElseIf I <> 1 ThenoTable.PageFields(I).CurrentPage = _oTable.PageFields(I).PivotItems(1).NameElseExit SubEnd IfEnd IfNext IElseDrillPvt oTable, Ipage + 1, wkshtEnd IfEnd Sub
数据透视表系列讲座9/15---打印
商务英语系列讲座(9)
Excel 透视表汇总多工作簿数据 Excel数据透视...
在Excel中用数据透视表进行分数段统计
EXCEL 数据透视表1——比较销售人员
l2007数据透视表和透视图的制作
Excel 透视表汇总多工作簿数据!(令人惊叹的功能!)--第二部 - Excel数据透视...
系列讲座15 医者践行“上善若水”、“厚德载物”
检索系列讲座0
小小说写作讲座系列
检索系列讲座
VBA系列讲座
五子剑系列讲座之一
VBA系列讲座(1):
商务英语系列讲座(4)
商务英语系列讲座(5)
商务英语系列讲座(6)
商务英语系列讲座(7)
商务英语系列讲座(8)
商务英语系列讲座(10)
商务英语系列讲座(13)
商务英语系列讲座(14)
健康知识系列讲座
商务英语系列讲座(1)