gpt4 book ai didi

excel - 在 VBA 的函数中引用另一个工作表中的单元格

转载 作者:行者123 更新时间:2023-12-04 21:50:31 26 4
gpt4 key购买 nike

VBA 的新手,请多多包涵。
如果另一个工作表中的单元格(B2)发生更改,我试图删除一个表。

目前我有:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Worksheets("sheet2").Range("B2")) Is Nothing Then
Range("B21:D30").ClearContents
End If
End Sub

我尝试了许多变体、间接和不同的语法,但都没有奏效。

更新:
我还应该提到,sheet2 上的 B2 将根据用户选择一组链接到 sheet2!B2 的单选按钮而改变。 IE。我没有直接从 sheet2 更改 B2 的值。事实上 sheet2 最终会被隐藏。

最佳答案

捕获 Sheet2 中的事件对于隐藏的工作簿(我们称之为Book2),您需要创建一个类来管理_SheetChange事件捕获。

假设您要捕获 Book2.Sheet2 中的事件来自 Book1 .做这个

1. 插入一个类模块(我们称之为 Class1 )并将这段代码粘贴到那里

代码

Private WithEvents hiddenWb As Workbook

Public Property Set Workbook(wb As Workbook)
Set hiddenWb = wb
End Property

Public Property Get Workbook() As Workbook
Set Workbook = hiddenWb
End Property

Private Sub hiddenWb_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name = "Sheet2" Then
If Not Intersect(Target, Sh.Range("B2")) Is Nothing Then
MsgBox "Range B2 was chnaged"
End If
End If
End Sub

2. 在模块中粘贴此代码

代码
Option Explicit

Dim cWb As New Class1

Sub Sample()
'~~> Set a reference to the hidden workbook
Set cWb.Workbook = Workbooks("Book2")

'~~> Change the value of the cell B2
cWb.Workbook.Sheets("Sheet2").Cells(2, 2).Value = "Blah Blah"
End Sub

截图

enter image description here

测试

运行程序 Sample()来自 Book1
有趣的阅​​读

Events And Event Procedures In VBA by Charles H. Pearson

关于excel - 在 VBA 的函数中引用另一个工作表中的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55174130/

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