excel vba:应用单元格与超链接公式失败时从另一个excel实例复制
当我复制一个单元格时,它包含一个超链接公式,它被插入为公式格式的html链接。只有接收应用程序不是另一个Excel 2010实例/应用程序对象时,它才起作用。
当我将它从原始实例复制到另一个实例时,它仅复制纯文本。excel vba:应用单元格与超链接公式失败时从另一个excel实例复制
我可以编写代码什么把html格式的文本放在剪贴板而不是Excel单元格内容对象?
周围有什么解决的Excel到Excel拷贝问题的工作,但现在我在主要基于以下职位的任何其它应用
粘贴时,有一个问题,我适合VBA提到那里的代码。现在的问题是,Windows现在将纯文本粘贴到其他应用程序中,但它在Excel中完美无瑕。 我在这篇文章的末尾添加了一些GIF文件以供澄清。
Public Sub CopyCellHyperlinkToClipboard(sLink As String, sDescription As String)
Dim objData As Object
On Error Resume Next
' this is a late bound MSForms.DataObject
Set objData = CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
' copy current cell formula to clipboard
With objData
.SetText CreateHTMLString(sLink, sDescription)
.PutInClipboard
End With
End Sub
* - How to set HTML to clipboard in C#?
Mike Stall's .NET Debugging Blog - Copying HTML on the clipboard 01:
* - Excel VBA code to copy a specific string to clipboard
Byte Comb Copy and Paste in VBA
* - How do I copy formatted HTML string into a Clipboard for paste using C#?
Mike Stall's .NET Debugging Blog - Copying HTML on the clipboard
以上导致子程序什么把剪贴板中的格式化HTML链接的链接
Function CreateHTMLString(sLink As String, sDescription As String)
Dim sContextStart As String, sContextEnd As String, m_sDescription As String, sHtmlFragment As String, sData As String, sSourceURL As String
m_sDescription = "Version:1.0" + Constants.vbCrLf _
+ "StartHTML:aaaaaaaaaa" + Constants.vbCrLf _
+ "EndHTML:bbbbbbbbbb" + Constants.vbCrLf _
+ "StartFragment:cccccccccc" + Constants.vbCrLf _
+ "EndFragment:dddddddddd" + Constants.vbCrLf
sContextStart = "<HTML><BODY><!--StartFragment -->"
'sSourceURL = "" + Constants.vbCrLf
sHtmlFragment = "<A HREF=" + Strings.Chr(34) + sLink + Strings.Chr(34) + ">" + sDescription + "</A>"
sContextEnd = "<!--EndFragment --></BODY></HTML>"
sData = m_sDescription + sContextStart + sHtmlFragment + sContextEnd
sData = Replace(sData, "aaaaaaaaaa", PadLeft(10, "0", Len(m_sDescription)))
sData = Replace(sData, "bbbbbbbbbb", PadLeft(10, "0", Len(sData)))
sData = Replace(sData, "cccccccccc", PadLeft(10, "0", Len(m_sDescription + sContextStart)))
sData = Replace(sData, "dddddddddd", PadLeft(10, "0", Len(m_sDescription + sContextStart + sHtmlFragment)))
'sData.Dump();
CreateHTMLString = sData
End Function
由于填充不通过VBA支持我创建了基于下面的链接这个功能: * - Any method equivalent to PadLeft/PadRight?
Function PadLeft(iLength As Integer, cChar As String, sText As String)
cChar = Left(cChar, 1)
PadLeft = Right(String(iLength, cChar) & sText, iLength)
End Function
个 以上导致什么创造实际的HTML字符串函数的链接
从Excel 2010实例插入超链接到另一个超链接,因为您可以看到它只插入超链接的标签: 在Excel中插入超链接作品完美无缺: 因此我写了上面的代码。现在Excel2Excel工作: ,但它并不适用于其他应用程序的工作:
如果你可以创建通过VBA的链接,它应该规避大约需要一个链接复制到剪贴板中的问题。
你会采取你的表要创建链接,并使用类似的循环:
With Sheets(A)
.Hyperlinks.Add Anchor:=.Cells(1,2), Address:=.Cells(1,1), TextToDisplay:="Example"
End With
这是一个相当普遍的建议,并且应该让你看,例如,.Cells(I,1 )和.Cells(i,2)的具体例子。
从)一个工作簿到另一个,使用全超链接,而不是说一个细胞=超链接(复制,将有望解决这个问题。
请分享您当前使用的代码。 – Cyril
它不是真正的代码,只是一个公式'= HYPERLINK(E10; C2&“_”&C8&“_”&TEXT(C4;“000”))''。我复制(原始文档)/粘贴(不同的实例)。我玩了一段代码,但迄今没有取得任何成功。 – Stefan
请显示你已经尝试过。我没有看到简单的复制/粘贴Excel文档之间的链接的问题,只要您有适当的超链接。我建议在VBA中创建超链接,这样单元格中的输出只是一个超链接,而不是一个公式。这应该解决问题(例如,范围(“名称”)。formula = application.hyperlink(blah))。 – Cyril