Las hojas de cálculo utilizan para separar una celda de otra el carácter TAB que en gambas se corresponde con gb.tab chr(9)
En microsoft para separar unas filas de otras se utiliza CRLF que corresponde a gb.tab + key.enter.
En Unix/Linux para separar unas filas de otras se utiliza LF que corresponde a gb.newline chr(10)

Adaptar esta rutina a nuestro caso según necesitemos.

Doy por creado un gridview al que llamaré gd
Creo un botón al que le asigno este código:

Código: Seleccionar todo

Sub Boton_click()
 'declarar variables
 DIM Grid AS String, fila AS Integer, Columna AS Integer
 DIM, MaxFilas AS Integer, MaxColumnas AS Integer
Inicializar valores:

Código: Seleccionar todo

  MaxColumnas = gd.columns.count - 1 '---> número de columnas de gd
  Maxfilas = gd.Rows.count - 1 '---> número de filas de gd

Copiar el encabezado horizontal del GD:

Código: Seleccionar todo

 FOR columna = 0 TO MaxColumnas '---> para cada columna
    Grid &= gd.Columns[columna].text  '---> poner el encabezado de columna
    IF columna < MaxColumnas THEN
      Grid &= gb.Tab '---> añadir un TAB si no es la última columna
    ELSE
      Grid &= gb.NewLine '---> añadir un LF si es la última columna
    ENDIF
  NEXT  
Copiar Datos:

Código: Seleccionar todo

 FOR fila = 0 TO Maxfilas '---> para cada fila
    FOR columna = 0 TO MaxColumnas '---> para cada columna
      grid &= gd[fila, columna].Text  ' copiar el valor de la celda
      IF columna < MaxColumnas THEN
        Grid &= gb.Tab '---> añadir un TAB si no es la última columna
      ELSE
        Grid &= gb.NewLine '---> añadir un LF si es la última columna
      ENDIF
    NEXT
  NEXT
Luego todo queda almacenado en un string llamado grid que se envia al porta papeles:

Código: Seleccionar todo

'Pasar el resultado al portapapeles
 Clipboard.Copy(Grid)
end
Welcome to your nightmare, bitch.
Responder

Volver a “Otros lenguajes”