this will help. Just write to a variant[][] array rather than the clipboard.

Code:
// Credit to Frank V. @ Cove Data Systems. 
Procedure  CoveCopyAllRowsToClipboard   
      Boolean bShow bVis
      Handle hoCol hoDataSource
      Integer iLooper iRows iCols iRowLooper  iColLooper
      String sHold
      tDataSourceRow[] TheData


      // Get grid data 
      Get phoDataSource to hoDataSource
      Get DataSource of hoDataSource to TheData
      Move (SizeOfArray(TheData)) to iRows                    
      Get ColumnCount             to iCols   
      If (piColumnsUsed(Self) <> -1) Get piColumnsUsed to iCols          
            
      Direct_Output channel 9 "Clipboard:"
        For iRowLooper from 0 to (iRows-1)
          For iColLooper from 0 to iCols //(iCols - 1)
            Move TheData[iRowLooper].sValue[iColLooper] to sHold   // Get grid row based on row# in SelRows Array
            Get Deformat sHold to sHold            
            Write channel 9 sHold 
            If (iColLooper < iCols ) Write tabchar            
          Loop  
          Writeln channel 9
        Loop    
      Close_Output channel 9
    End_Procedure