gpt4 book ai didi

excel - 带下拉列表的循环引用

转载 作者:行者123 更新时间:2023-12-02 13:11:41 25 4
gpt4 key购买 nike

MS 中可以吗? Excel 或 VBA 具有带下拉列表的循环引用?

这就是我想要的:我想在两张表(表 1、表 2)上生成一个下拉列表,其中显示“完整”或“不完整”。如果我将工作表 1 从完整更改为不完整,我希望工作表 2 说同样的事情,但我也希望反之亦然
(如果我将工作表 2 从“完整”更改为“不完整”,我希望工作表 1 也发生更改)。

这可能吗?

最佳答案

对任何工作表的 B5 范围进行更改似乎是一种可行的方法,但个人 Worksheet_Change事件宏有一些限制。

必须在许多工作表代码表中重复该代码,并且必须在同一工作表代码表中克隆任何修改。新工作表要求将子过程合并到它们自己的代码表中。

如果在写入新值之前不禁用事件,接收新值的每个工作表都将启动自己的 Worksheet_Change事件宏将重写值,从而触发更多事件。级联事件故障几乎肯定会发生。

通过交换 Worksheet_Change更通用的事件宏Workbook_SheetChange事件宏位于 ThisWorkbook 代码表中,所有代码都可以本地化到单个位置。在一个地方进行调整,新的工作表将自动添加到要处理的工作表队列中。它们可以轻松添加到工作表数组中进行处理。

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Address = "$B$5" And Sh.Name <> "Sheet3" Then
On Error GoTo bm_Safe_Exit
Application.EnableEvents = False
Dim w As Long
For w = 1 To Worksheets.Count
With Worksheets(w)
'skip this worksheet and Sheet3
If CBool(UBound(Filter(Array(Sh.Name, "Sheet3"), _
.Name, False, vbTextCompare))) Then
.Range("B5") = Target.Value
'.Range("B5").Interior.ColorIndex = 3 '<~~testing purposes
End If
End With
Next w
End If
bm_Safe_Exit:
Application.EnableEvents = True
End Sub

任何不接收其自身 B5 单元格中值更新的工作表都可以添加到 Filter function 中使用的数组中。 。目前,Sheet3 和发起 Workbook_SheetChange 事件的工作表被排除。

关于excel - 带下拉列表的循环引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23810800/

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