自动 link 命令按钮到单元格值

automatically link command button to cell value

我尝试编写的代码由两部分组成。第一部分我成功完成了,但我很难搞清楚第二部分。

第一部分: 在文本框中填写项目编号(例如 211),然后命令按钮运行宏并将该编号填入新行,生成worksheet 命名为 211(在工作簿中)并在项目编号旁边添加一个新的命令按钮。

所以想法是,在主 sheet 上有一个包含项目编号的完整列表,每个编号旁边都有一个命令按钮,可以转到相应的工作 sheet。因此很容易就有 50 个项目编号、50 个命令按钮和 50 个工作 sheet。这是代码:

Dim MySheetName As String
Set pasteSheet = Worksheets("Mainsheet")
Dim aRange As Range

Dim sValue As Variant, findMe As Range, sWhere As Range
sValue = TextBox1.Value
Set sWhere = Range("B4:B700")
Set findMe = sWhere.Find(What:=sValue, After:=sWhere(1))

If findMe Is Nothing Then

LastRow = pasteSheet.Cells(pasteSheet.Rows.Count, "B").End(xlUp).Row
    Worksheets("Mainsheet").Range("B" & LastRow + 1).Value = TextBox1.Value

With Worksheets("Mainsheet")
    .CommandButton1.Copy
    .Range("B" & LastRow + 1).Offset(0, 3).Select
    .Paste
End With

Unload Me

Sheets("Copysheet").Copy After:=Sheets("Copysheet")
    Range("C3") = TextBox1.Value
    ActiveSheet.Name = TextBox1.Value

Else
    Unload Me
    MsgBox "Number already exists"
End If

Worksheets("Mainsheet").Activate
Range("A1").Value = 1

第二部分:这部分是我的谜语。我现在要做的是,每个生成的命令按钮都包含一个自动切换到相应工作的代码sheet。

例如如果我创建一个名为 214 的新项目编号(自动填充到单元格 B5 中),单元格 C5 中的命令按钮将在单元格 B5 中搜索并转到该工作 sheet。如果我创建另一个名为 215 的项目(在单元格 B6 中),C6 中的命令按钮会搜索 B6 中的值,依此类推...

感谢任何帮助,谢谢。

不使用按钮,一个简单的解决方案是在 C 列中放置一个超链接。

With Worksheets("Mainsheet")
    '.CommandButton1.Copy
    '.Range("B" & LastRow + 1).Offset(0, 3).Select
    '.Paste
    .Range("B" & LastRow + 1).Offset(0, 3).Select
    .Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
        projectNo & "!A1", TextToDisplay:="Link"
End with

重要的一点是,您还必须将创建新 sheet 的部分移至此部分之前,以避免在尝试创建超链接时出错。