这是我的第一篇文章,完整的新手。到目前为止,我已经通过这个论坛浏览了。如果你能提供意见来改进代码并让它做我想做的事情,我会很高兴。
我想使用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
正确复制了值,但超链接未被转移。 非常感谢您的帮助。
答案 0 :(得分:0)
添加一行从单元格中获取超链接的值 -
sHyperVal = CurrentCell.Hyperlinks(1).Address
然后,当将两个值粘贴在一起时,请使用类似于以下内容的内容 -
CurrentCell = "=IFERROR(HYPERLINK(""" & sHyperVal & """, """ & firstVal & " " & secondVal & """),"""")"
这应该会给你想要的结果。
希望这有帮助。