【发布时间】:2021-05-31 01:22:21
【问题描述】:
我在 VBA 方面从来都不是很好,但是在很久没用之后,我更加没有想法了。 我写了一个宏(除其他外):
- 打开按钮创建具有给定属性的新行。
- excel用户可以手动输入A列记录的编号。
- 对于该编号的活动单元格,单击按钮会使用模板创建新工作表并将其命名为活动单元格中的编号。
在下一步中,我想在引用该新创建工作表的记录编号上创建一个超链接,并且最好移动到新工作表。
我已经创建了超链接,但在新工作表中:
Sub HistoriaDostaw()
Dim wb As Workbook
Dim ws As Worksheet
Dim activeWB As Workbook
Dim FilePath As String
Dim ShtName As String
Dim CopyInfo As String
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set activeWB = Application.ActiveWorkbook
FilePath = activeWB.Path & "\HistoriaDostawca.xltm"
On Error Resume Next
If ActiveCell.Column <> 1 Or ActiveCell.Value2 = "" Then
MsgBox "Zaznacz liczbe porzadkowa w kolumnie A!", vbCritical, "Blad"
Exit Sub
Else: ShtName = ActiveCell.Value2
End If
If Not WorkSheetExists(ShtName) Then
Set wb = Application.Workbooks.Open(FilePath)
wb.Worksheets(1).Copy After:=activeWB.Sheets(activeWB.Sheets.Count)
ActiveCell.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="ShtName!A1"
activeWB.Activate
activeWB.Sheets(activeWB.Sheets.Count).Name = ShtName
wb.Close False
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End If
End Sub
提前感谢您的帮助。
【问题讨论】:
-
你的问题不是很清楚。至少对我来说...那么,您是否要创建一个超链接在同一张表中,正如问题标题中所述?或者,您需要在最初活动的工作表中创建超链接,但以新创建的工作表为目标?
-
也许我的问题不清楚。我有一个包含分包商列表的主表,每个分包商都有单独的编号。该分包商的详细信息包含在单独的表格中,以该个人编号命名。我想在该数字上创建带有详细信息的工作表的 hyperling。
-
恐怕你没有澄清太多。首先,
On Error Resume Next在这种情况下根本没有帮助。它只是不让你看到你的代码有什么问题。然后,您的代码的活动工作表将是新添加的工作表。这是你想要的吗?如果是,我怀疑您是否真的想要工作表本身的超链接。我错了吗?您可能需要一个超链接来定位之前定义的ShtName。这个假设正确吗?但是如果你再过4-5个小时再回答,恐怕我帮助你的热情就会大打折扣…… -
如果是这样,请不要理会我的问题,很抱歉浪费您的时间。这是我在空闲时间从事的一个副项目。要回答您的问题,我需要在最初活动的工作表中创建超链接,但针对新创建的工作表。因此,单击按钮时,它会在分包商的数量上创建超链接,例如“Subcontractor1”,针对新创建的名为“Subcontractor1”的工作表。
-
对解决您的问题更感兴趣的我有点荒谬......我在我的答案代码中回答了我们的评论,要求澄清。因为,看起来你在这里的可用性非常低,我根据新的假设调整了我的答案代码......