自动将命令按钮链接到单元格值

时间:2015-11-17 12:36:29

标签: excel vba worksheet commandbutton

我想要制作的代码由2部分组成。我设法做的第一部分,但我很难搞清楚第二部分。

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

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

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

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

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

感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

而不是使用按钮,一个简单的解决方案可能是在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

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