VBA用户定义的函数来复制单元格的值,文本形成和超链接?

Posted

技术标签:

【中文标题】VBA用户定义的函数来复制单元格的值,文本形成和超链接?【英文标题】:VBA user-defined function to copy value, text formation and hyperlink of a cell? 【发布时间】:2013-05-13 15:11:14 【问题描述】:

给定一个示例纯 excel 文件here,复制单元格的值、格式和超链接的 VBA 代码是什么?

即在单元格 B5,我们将调用 =myCopyCellFunction(B2),我们将在 B2 处获得确切的单元格值

【问题讨论】:

您要复制单元格的值和格式或公式吗?您是否尝试过录制一些代码?请向我们展示您遇到问题的代码 我认为除了返回值之外,您不能使用用户定义函数在 Excel 中执行任何操作。如果我正确理解您的问题,您希望它插入超链接吗?您必须使用宏而不是 UDF 来执行此操作(即将 UDF 从函数更改为子)。 您认为为什么需要 UDF?告诉我们您要完成的工作,并向我们展示您的代码,以便我们提供帮助 @Philip B2 单元格是从***复制的内容,带有超链接和漂亮的文本格式。我只是想将原始单元格带到另一个我处理 wiki 数据的表中。如果 Excel 有另一个运算符,那就太好了,f= 说,besiade `=' 运算符 @NamG.VU 在下面试试我的答案 【参考方案1】:

在普通代码模块中试试这个

Function copyIt(ByVal vRange As Range) As String
Dim sAddress As String
Dim sText As String
'
Application.EnableEvents = False

Application.ThisCell.Hyperlinks.Delete
' handle non hyperlinks in source cell
If vRange.Hyperlinks.Count < 1 Then
    copyIt = vRange.Text
    Exit Function
End If
'
' get values for new hyperlink in target cell
sAddress = vRange.Hyperlinks(1).Address
sText = vRange.Hyperlinks(1).TextToDisplay
'
' apply link to target cell
Application.ThisCell.Hyperlinks.Add Anchor:=Application.ThisCell, Address:=sAddress, TextToDisplay:=sText
' return string value 
copyIt = sText
'    
Application.EnableEvents = True

End Function

然后你在这样的单元格中使用它:

=copyIt(B2)

【讨论】:

我试过你的,但不适合我这个样本dl.dropboxusercontent.com/u/6194904/2013/…

以上是关于VBA用户定义的函数来复制单元格的值,文本形成和超链接?的主要内容,如果未能解决你的问题,请参考以下文章

vba在单元格中生成的公式如何变成文本值

VBA函数添加两个单元格的值[重复]

VBA - 如何将单元格的值从文本转换为数字

如果当前单元格在 VBA 中为空,则获取相邻单元格的值

vba怎样把一个单元格中的值赋给另一个单元格

Excel VBA 用户定义函数:在工作表函数中获取单元格被调用