Results 1 to 10 of 541

Thread: Appendix Thread. 3 *

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #11
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    9,521
    Rep Power
    10

    Thoughts on adding split lines in Excel cells via the ( probably windows ) Clipboard

    In support of these posts

    https://stackoverflow.com/questions/...60767#54960767
    https://www.eileenslounge.com/viewto...p?f=18&t=33834



    Thoughts on adding split lines in Excel cells via the ( probably windows ) Clipboard

    The following code snippet is typical of those which got me to the solution of how to manipulate a text string so that it pastes into Excel a cell with multiple lines.
    The first section shows me what the text in "the clipboard" looks like after using Excel ways to copy my final desired test form , after using Excel ways to produce it. It gives this sort of output
    "A" & vbCr & vbLf & """" & "X" & vbLf & "Y" & """" & vbCr & vbLf & "C" & vbCr & vbLf
    A vbCr vbLf " X vbLf Y " vbCr vbLf C vbCr vbLf
    TestvbLf_3.jpg : https://imgur.com/oPXJIkG
    Attachment 2566

    Either code sections 2 and 3 would error, presumably because the windows clipboard has been emptied. That is not totally understandable. We know that we had something in the windows clipboard. Doing things that empty "clipboards" , possibly other than the window clipboard, seem also somehow to remove things from the windows clipboard.
    Possibly we could explain this by saying that as Excel filled the windows clipboard as a sort of extra thing to do after primarily filling its clipboard, then some linking wiring in place to do that also resulted into it clearing the windows clipboard when it cleared its clipboard
    Code section 4 erroring is less understandable, as we did not use normal Excel ways to fill the window clipboard, but never the less .Clear seems to empty it.
    Code section 5 erroring is similarly less understandable, since it is generally considered that Application.CutCopyMode = False clears the Excel clipboard

    Before going on to sections 7 and 8, copy something to the "clipboard" from anywhere.
    We find that section 7 and 8 would still error. This once again seems to be caused by either .Clear or .CutCopyMode = False. It suggests that there is some link to the windows clipboard that causes it to be cleared. It suggests perhaps that something has been set to link things in the windows clipboard from Excel or office, possibly to get some formatting parameters. If you put anything into the windows clipboard, it will still be cleared when doing .Clear or .CutCopyMode = False , by virtue of this linking "wiring"

    Section 9 probably removes this linking wiring.
    When a manual copy is then made in the following sections , possibly a new wiring is set up which has a different sort of dependency.

    Before going on to section 10 and then again before going on to section 11, copy something to the "clipboard" from anywhere.
    The code lines of .Clear or .CutCopyMode = False at the start of these sections do not remove the orange from the icon top left, and code sections 10 and 11 do not error. This supports the idea that a link was made to the windows clipboard that works slightly differently.



    Code:
    Sub TestvbLf_3()
    ActiveSheet.Cells.Clear
    
    
    Dim objDataObject As Object: Set objDataObject = GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
    Dim StringBack As String
    ' Section 1
     ActiveSheet.Range("A1").Value = "A"
     ActiveSheet.Range("A2").Value = "X" & vbLf & "Y"
     ActiveSheet.Range("A3").Value = "C"
     ActiveSheet.Range("A1:A3").Copy
     objDataObject.GetFromClipboard: Let StringBack = objDataObject.GetText()
     Call WtchaGot(StringBack)
     'ActiveSheet.Cells.Clear ' --- This clears "the clipboard",
     ActiveSheet.Paste Destination:=ActiveSheet.Range("D1")
     
    ' Section 2
    ' ActiveSheet.Cells.Clear ' --- This clears "the clipboard"
    ' objDataObject.GetFromClipboard: Let StringBack = objDataObject.GetText() ' This errors
    ' Call WtchaGot(StringBack)
    
    ' Section 3
    ' Application.CutCopyMode = False
    ' objDataObject.GetFromClipboard: Let StringBack = objDataObject.GetText() ' This errors
    ' Call WtchaGot(StringBack)
    
    ' Section 4
    ' objDataObject.SetText "A" & vbCr & vbLf & """" & "X" & vbLf & "Y" & """" & vbCr & vbLf & "C": objDataObject.PutInClipboard
    ' ActiveSheet.Cells.Clear
    ' objDataObject.GetFromClipboard: Let StringBack = objDataObject.GetText() ' This errors
    ' Call WtchaGot(StringBack)
    
    ' Section 5
    ' objDataObject.SetText "A" & vbCr & vbLf & """" & "X" & vbLf & "Y" & """" & vbCr & vbLf & "C": objDataObject.PutInClipboard
    ' Application.CutCopyMode = False
    ' objDataObject.GetFromClipboard: Let StringBack = objDataObject.GetText()
    ' Call WtchaGot(StringBack)
     
    Stop  ' BEFORE DOING THE NEXT CODE SECTIONs, copy something manually via Ctrl+c ...
    ' Section 7
    ' ActiveSheet.Cells.Clear
    ' objDataObject.GetFromClipboard: Let StringBack = objDataObject.GetText() ' This errors
    ' Call WtchaGot(StringBack)
    '
    '' Section 8
    ' Application.CutCopyMode = False
    ' objDataObject.GetFromClipboard: Let StringBack = objDataObject.GetText() ' This errors
    ' Call WtchaGot(StringBack)
    
    ' Section 9
     ActiveSheet.Cells.Clear  ' This I think breaks the link from other clipboards to the windows clipboard.
    ' Application.CutCopyMode = False ' this line as alternative to the last has the same effect
    
    Stop  ' BEFORE DOING THE NEXT CODE SECTIONs, copy something manually via Ctrl+c ...
    
    ' Section 10
     ActiveSheet.Cells.Clear
     objDataObject.GetFromClipboard: Let StringBack = objDataObject.GetText()
     Call WtchaGot(StringBack)
     ActiveSheet.Paste Destination:=ActiveSheet.Range("E1")
    
    Stop  ' BEFORE DOING THE NEXT CODE SECTIONs, copy something manually via Ctrl+c ...
    
    ' Section 11
     Application.CutCopyMode = False
     objDataObject.GetFromClipboard: Let StringBack = objDataObject.GetText()
     Call WtchaGot(StringBack)
     ActiveSheet.Paste Destination:=ActiveSheet.Range("H1")
    
    End  Sub
    Attached Images Attached Images

Similar Threads

  1. Replies: 189
    Last Post: 02-06-2025, 02:53 PM
  2. Replies: 603
    Last Post: 05-20-2024, 03:31 PM
  3. Replies: 293
    Last Post: 09-24-2020, 01:53 AM
  4. Appendix Thread. Diet Protokol Coding Adaptions
    By DocAElstein in forum Test Area
    Replies: 6
    Last Post: 09-05-2019, 10:45 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •