Excel VBA复制单元格到另一个工作表,同时保持超链接

时间:2015-11-10 01:22:56

标签: excel-vba vba excel

这是我的第一篇文章,完整的新手。到目前为止,我已经通过这个论坛浏览了。如果你能提供意见来改进代码并让它做我想做的事情,我会很高兴。

我想使用Excel VBA编写动作来执行以下操作:单击按钮后,代码将从工作表中随机选择一个值,将其与相邻单元格中的值组合并将其复制到另一个工作表中,同时保留附加到第一个值的超链接。 这就是我到目前为止所做的:

Sub CommandButton1_Click()

   Dim ExNo As Range
   Dim Exercise As Range
   Dim CurrentCell As Range
   Dim RandTemp As Single
   Dim NbEx As Single

Set ExNo = Worksheets("ExList").Range("B3", "B100")
Set Exercise = Worksheets("ExList").Range("C3", "C100")
NbEx = WorksheetFunction.CountA(Worksheets("ExList").Range("B3", "B100"))
For i = 1 To 5    
    RandTemp = Rnd()            
    Set CurrentCell = Worksheets("Exercise").Cells(4 * i, 2)
    CurrentCell = WorksheetFunction.Index(ExNo, Int(NbEx * RandTemp) + 1) & "  " & WorksheetFunction.Index(Exercise, Int(NbEx * RandTemp) + 1)

Next

With ActiveSheet
   .Shapes("CommandButton1").Top = .Range("B25").Top + 4
   .Shapes("CommandButton1").Left = .Range("B25").Left + 4
   .Shapes("CommandButton1").Width = .Range("B25").Width + .Range("C25").Width - 8
.Shapes("CommandButton1").Height = .Range("B25").Height + .Range("B26").Height - 8

End With

End Sub

正确复制了值,但超链接未被转移。 非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

添加一行从单元格中获取超链接的值 -

sHyperVal = CurrentCell.Hyperlinks(1).Address

然后,当将两个值粘贴在一起时,请使用类似于以下内容的内容 -

CurrentCell = "=IFERROR(HYPERLINK(""" & sHyperVal & """, """ & firstVal & " " & secondVal & """),"""")"

这应该会给你想要的结果。

希望这有帮助。