首页 > 解决方案 > 在新创建的动态表上用零填充空白

问题描述

我是使用 VBA 的新手。我刚刚创建了一个宏,我希望空白在同一个宏中自动填充为零。我尝试了几种方法,但这标志着我的错误。尝试使用以下代码行:

ActiveSheet.PivotTables("TablaDepartamentos").NullString = "0"

我使用这行代码,因为数据透视表被重命名:

'Rename pivot table 
Dim ws As Worksheet

For Each ws In ActiveWorkbook.Worksheets
    ws.Activate
For Each pt In ws.PivotTables
    pt.Name = ws.Name

Next pt
Next ws
End With

接下来,我把代码留给你看看我在做什么。非常感谢:

Sub PRUEBA()
Dim pt As PivotTable
Dim PTCache As PivotCache

'Revisa que no existan hojas con ese nombre y si lo hay, lo alimina
On Error Resume Next
Application.DisplayAlerts = False
Sheets("TablaDepartamentos").Delete
On Error GoTo 0

'Obtener la informacion de la tabla
Set PTCache = ActiveWorkbook.PivotCaches.Create( _
    SourceType:=xlDatabase, _
    SourceData:=Sheets("ECC-EWM").Range("A1").CurrentRegion.Address)


'Crear una nueva worksheet
Worksheets.Add
ActiveSheet.Name = "TablaDepartamentos"

'Crear la tabla pivote
Set pt = ActiveSheet.PivotTables.Add( _
    PivotCache:=PTCache, _
    TableDestination:=Range("A1"))

'Crear columna de la tabla
 With pt.PivotFields("System")
    .Orientation = xlColumnField
    .Position = 1
End With

'Crear fila de la tabla
With pt.PivotFields("Depart")
 .Orientation = xlRowField
 .Position = 1
End With

'Table information
With pt.PivotFields("Count")
 .Orientation = xlDataField
 .Position = 1
 .Function = xlSum
 .NumberFormat = "#,##0"

'Rename pivot table 
Dim ws As Worksheet

For Each ws In ActiveWorkbook.Worksheets
    ws.Activate
For Each pt In ws.PivotTables
    pt.Name = ws.Name

Next pt
Next ws
End With
End Sub

非常感谢

标签: excelvba

解决方案


如果不知道您收到的错误消息,很难提供帮助。

我对 VBA 也很陌生,但是有人给了我这个关于合格参考的链接,它对学习良好的编码实践非常有帮助。从第一次阅读你的潜艇开始,我看到你喊出了一个标签,但是你没有标签让它去。我现在看到的另一件事可能会给您带来麻烦是 TableDestination:=Range("A1"))。您应该在 range 函数之前调用工作表,以便它知道完整的参考。


推荐阅读