我正在制作一个组织图表,其中包含每个级别的值。我已经有一个简单的隐藏行VBA。我该如何添加它以便例如
如果公司A的价值(例如J11)=公司1,2和3的值,则显示在H14,J14和L14中
然后当第14行被隐藏时,则J11 = sum(H14,J14,L14)
当行14可见时,则J11 = 0
这是我到目前为止隐藏/取消隐藏行的原因。
Sub sbHideAll()
Rows("10:25").EntireRow.Hidden = True
End Sub
Sub sbShowAll()
Call sbHideAll
Rows("10:25").EntireRow.Hidden = False
End Sub
Sub sbShowGUCL()
Call sbHideAll
Rows("10:11").EntireRow.Hidden = False
End Sub
你不能直接做,但你可以得到可见细胞的价值。
所以取这个范围的值如下:
Application.WorksheetFunction.Sum(Union(Range("H13:H100"), Range("J13:J100"), Range("L13:L100")))
然后使用.Rows.SpecialCells(xlCellTypeVisible)
获取可见单元格的值,如下所示:
Application.WorksheetFunction.Sum(Union(Range("H13:H100").Rows.SpecialCells(xlCellTypeVisible), Range("J13:J100").Rows.SpecialCells(xlCellTypeVisible), Range("L13:L100").Rows.SpecialCells(xlCellTypeVisible)))
然后减去另一个
您可以将每个分配给变量,也可以直接将其放入J11,如下所示:
Range("J11").Formula = Application.WorksheetFunction.Sum(Union(Range("H13:H100"), Range("J13:J100"), Range("L13:L100"))) - Application.WorksheetFunction.Sum(Union(Range("H13:H100").Rows.SpecialCells(xlCellTypeVisible), Range("J13:J100").Rows.SpecialCells(xlCellTypeVisible), Range("L13:L100").Rows.SpecialCells(xlCellTypeVisible)))