I’ve a routine that effectively pastes a link to a cell or cells that a user has copied to the clipboard, putting a space after the "=" (a personal preference, for readability) and changing the anchoring to row-only before pasting. If the link is to another sheet, the font is changed to blue. The code is as follows:
Sub QuickLink2()
'   Copies a link,putting a space after the "=" and changing the
'   anchoring to row-only. If the link is to another sheet, the
'   font is changed to blue.
    Dim r As Long, c As Long
    Dim FormulaArr() As Variant
    Dim Destination As Range
    Application.ScreenUpdating = False
'   Paste link
    On Error Resume Next
    ActiveSheet.Paste Link:=True
    If Err.Number = 1004 Then GoTo NoSelection '1004 is a paste failure
    On Error GoTo 0
'   Transfer pasted link to array
    If Selection.Cells.Count = 1 Then
        ReDim FormulaArr(1 To 1, 1 To 1)
        FormulaArr(1, 1) = Selection.Formula
    Else
        FormulaArr = Selection.Formula
    End If
'   Adjust formula spaces and anchoring
    For r = 1 To UBound(FormulaArr, 1)
        For c = 1 To UBound(FormulaArr, 2)
            FormulaArr(r, c) = Replace(FormulaArr(r, c), "=", "= ")
            FormulaArr(r, c) = Application.ConvertFormula _
            (FormulaArr(r, c), xlA1, xlA1, xlAbsRowRelColumn)
        Next c
    Next r
    Set Destination = Selection
    Destination.Formula = FormulaArr
'   Change font to blue if link is to another sheet
    If Destination(1).Formula Like "*!*" Then _
    Destination.Font.Color = RGB(0, 0, 255)
    Exit Sub
NoSelection:
    Application.CutCopyMode = False
End Sub
The idea here is to speed up the code by assigning the pasted link to a variant array, doing the necessary work on the array, and then assigning the array to a range. What I really want to do, however, is to access the copied cell formulas directly from the clipboard, and assign to the variant array without the intermediate ActiveSheet.Paste Link:=True step.
The following code would allow me to get the copied cell value, but of course I'm looking for the copied formulas.
Dim DataObj As New MSForms.DataObject
Dim S As String
DataObj.GetFromClipboard
S = DataObj.GetText
 
    