gpt4 book ai didi

excel - 如何将“Worksheet_SelectionChange 事件”中 "Target"范围的内容传递给子?

转载 作者:行者123 更新时间:2023-12-04 22:08:18 25 4
gpt4 key购买 nike

我的工作簿的表 1 包含(除其他数据外)A 列中其他工作表的列表。我希望能够单击 A5:A50 列中的任何单元格并转到该单元格中列出的相应工作表。我的 Sheet1 代码是:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Me.Range("A5:A50")) Is Nothing Then SelectWorksheet
End Sub

模块 2 是:
Sub SelectWorksheet()
Dim strName As String
strName = Sheet1.Range("Target").Text (Error occurrs here: "Method 'Range' of object 'Worksheet' failed")
Sheets(strName).Select
End Sub

我如何让它按我的预期工作?我知道我可以单击相应的工作表选项卡,但我正在尝试学习如何在 VBA 中编码。谢谢。顺便说一句,我如何让我的帖子显示问题框中输入的代码?

最佳答案

像这样。您可能想使用 _SelectionChange事件而不是 _Change事件。或者您可能会发现有必要同时使用这两个事件来触发它。无论如何,这里是您将变量传递给另一个子例程/模块的方式:

Sub Worksheet_SelectionChange(byVal Target as Range)
'Some code...
'
Call OtherMacro(Target)
'
End Sub

然后在你的另一个宏中,声明一个范围变量作为必需的参数,如下所示:
Sub SelectWorksheet(rng as Range)
'
Dim strName as String

' at this point you can work with the "rng" variable, because it's been received from the other subroutine
strName = rng.Value
Sheets(strName).Activate
'
End Sub

您需要添加额外的测试以确保用户没有选择多个单元格等,但这应该可以帮助您入门。

关于excel - 如何将“Worksheet_SelectionChange 事件”中 "Target"范围的内容传递给子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15606785/

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