VBA - 如果隐藏在下面的行,请求和

问题描述 投票:-1回答:1

我正在制作一个组织图表,其中包含每个级别的值。我已经有一个简单的隐藏行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

excel vba excel-vba-mac
1个回答
0
投票

你不能直接做,但你可以得到可见细胞的价值。

所以取这个范围的值如下:

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)))
© www.soinside.com 2019 - 2024. All rights reserved.