gpt4 book ai didi

excel - Excel 的 VBA UDF 变得有值(value)!在另一个 UDF 上使用 hidden = true 之后

转载 作者:行者123 更新时间:2023-12-04 20:53:53 29 4
gpt4 key购买 nike

我已经为一个项目构建了一个包含多个公式的 Excel 工作表。然后,我添加了一个用于折叠/展开某些单元组的命令按钮。

命令按钮代码是:

Private Sub CommandButton1_Click()

Columns("B").ColumnWidth = 30
With Me.CommandButton1
If .Caption = "Customer Relationship" & vbCrLf & "Management Processes" Then
.Caption = "Customer Relationship" & vbCrLf & "Management Processes "
Rows("11:74").Hidden = False
Else
.Caption = "Customer Relationship" & vbCrLf & "Management Processes"
Rows("11:74").Hidden = True
End If
'Worksheets(1).Calculate
End With
End Sub

它工作正常。现在,在工作表上,我有一个使用另一个 UDF 根据背景颜色对单元格求和的单元格,该单元格的代码是:
Function ColorFunction(rColor As Range, rRange As Range, 
Optional SUM As Boolean)
Dim rCell As Range
Dim lCol As Long
Dim vResult
lCol = rColor.Interior.ColorIndex

If SUM = True Then
For Each rCell In rRange
If rCell.Interior.ColorIndex = lCol Then
vResult = WorksheetFunction.SUM(rCell, vResult)
End If
Next rCell
Else
For Each rCell In rRange
If rCell.Interior.ColorIndex = lCol Then
vResult = 1 + vResult
End If
Next rCell
End If
ColorFunction = vResult
End Function

它也像一个魅力。问题来了:当我按下 CommandButton 时,单元格会正确折叠/展开,但具有 sum-by-color 函数的单元格会变为 VALUE!,然后如果我单击公式内的公式栏并返回工作表,它会自动修复自己而无需我更改任何内容。

我尝试过了:
a-在按钮上添加重新计算,没有骰子。
b-放弃该功能,我尝试使用其他代码,它做了同样奇怪的事情。
c- 放弃公式已经疯了,因为它不能“看到”折叠的单元格了。它确实看到了它们,当我折叠组并“修复”单击它的公式时,它会正确求和,即使当时隐藏了单元格。

有什么帮助吗?
提前致谢

最佳答案

单击命令按钮时,将(至少)您的函数中提到的单元格之一设置为脏。这将触发重新计算。

Private Sub CommandButton1_Click()

Columns("B").ColumnWidth = 30
With Me.CommandButton1
If .Caption = "Customer Relationship" & vbCrLf & "Management Processes" Then
.Caption = "Customer Relationship" & vbCrLf & "Management Processes "
Rows("11:74").Hidden = False
Else
.Caption = "Customer Relationship" & vbCrLf & "Management Processes"
Rows("11:74").Hidden = True
End If
'Worksheets(1).Calculate
End With
Cells(1, 6).Dirty 'For Cell F1
End Sub

关于excel - Excel 的 VBA UDF 变得有值(value)!在另一个 UDF 上使用 hidden = true 之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52505325/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com