我有一个数据集,其中每一行都是一个总账(GL)账户,每一列都有相关期间的值。
我想隐藏所有GL帐户(行),其中所有期间(列)都不包含任何值(或零值)。
以下代码似乎适用于"无值"。
如何隐藏所有仅包含零的行(或所有包含零的行或"没有值"?
如果一个句点有一个金额,则该行不应该被隐藏。
export default class LogoWall extends React.Component
{
//...
renderLogo(logoUrl)
{
// need to wrap into a function to have unique keys...
return (key) => <Image
key={key}
source={{uri: logoUrl}}
style={styles.logo}
/>
}
render()
{
// trying to save logos within this object
const logos = {};
return (
<View style={styles.rowContainer}>
{(() => {
let logoRows = [];
for (let i = 0; i < this.props.rows; i++) {
logoRows.push(<View style={styles.logoRow} key={i}>
{this.getLogos(i % 2 === 0).map((logoUrl, key) => {
// should only render when this image doesn't exist
if (typeof logos[logoUrl] === 'undefined') {
logos[logoUrl] = this.renderLogo(logoUrl);
}
return logos[logoUrl](key)
})}
</View>)
}
return logoRows;
})()}
</View>
)
}
}
此外,一旦任何金额连续变化,此代码也应该重新出现未隐藏的行。此时它隐藏了一行没有价值的行,但一旦发生变化,隐藏的行就不会再出现了。
答案 0 :(得分:1)
如果要测试所有空白或全部为零,请查看下面的代码,如果存在则隐藏行。从所有行取消隐藏开始。
Sub hide()
Dim wb As Workbook
Dim ws As Worksheet
Dim c As Range
Dim targetRange As Range
Set wb = ThisWorkbook
Set ws = wb.Sheets("Sheet5")
Set targetRange = ws.Range("A1:F6")
targetRange.EntireRow.Hidden = False
For Each c In targetRange.Rows
If (WorksheetFunction.CountIf(c,"<>0") - WorksheetFunction.CountIf(c,"") = 0) And (WorksheetFunction.CountA(c) - WorksheetFunction.Count(c) = 0) Then
c.EntireRow.Hidden = True
End If
Next c
End Sub
答案 1 :(得分:0)
在决定是否隐藏它之前,您必须完全检查每一行。目前,每行的最后一个单元格决定是否隐藏行。
尝试使用以下代码。它为一行的所有单元格设置范围,并使用函数CountA
计算非空单元格的数量。
Sub hide()
Dim ws As Worksheet, row As Long
Set ws = ActiveSheet
With ws
For row = 1 To 6
Dim myRange As Range
Set myRange = .Range(.Cells(row, 1), .Cells(row, 6))
.Rows(row).EntireRow.Hidden = (Application.WorksheetFunction.CountA(myRange) = 0)
Next row
End With
End Sub