Copiar, pegar y formatear
Limpiar el texto después de ser pegado funciona, pero el problema es que se pierde todo el formato anterior. Por ejemplo, puedo escribir una frase en el editor y ponerla en negrita, pero cuando pego el nuevo texto, se pierde todo el formato. Quiero limpiar sólo el texto que se pega, y dejar cualquier formato anterior sin tocar.
El evento onpaste del div tiene la función handlePaste adjunta y se le pasa un único argumento: el objeto de evento para el evento de pegado. De particular interés para nosotros es la propiedad clipboardData de este evento que permite el acceso al portapapeles en los navegadores que no son IE. En IE el equivalente es window.clipboardData, aunque este tiene una API ligeramente diferente.
La primera comprueba la existencia de event.clipboardData y comprueba si su propiedad types contiene ‘text/html’ (types puede ser una DOMStringList que se comprueba con el método contains, o una cadena que se comprueba con el método indexOf). Si se cumplen todas estas condiciones, se procede como en la solución nº 1, pero con ‘text/html’ en lugar de ‘text/plain’. Esto funciona actualmente en Chrome y Firefox 22+.
Cortar y pegar
[Nota del editor: Mientras nos tomamos un tiempo para descansar durante las vacaciones y prepararnos para el próximo año, volvemos a publicar nuestros diez mejores posts del año. Disfrute de nuestros trabajos favoritos de este año y nos vemos en 2022].
Dicen que detrás de cada broma hay un núcleo de verdad. En el caso de nuestro reciente chiste del Día de los Inocentes, podría ser más bien una mazorca entera, tal vez un celemín de verdad. Queríamos adoptar un meme clásico de Stack Overflow y modificar uno de nuestros principios fundamentales. Nuestra empresa se inspiró en la frustración de los fundadores con los sitios web que mantenían las respuestas a las preguntas de codificación detrás de los muros de pago. ¿Cómo sería el mundo si de repente decidiéramos monetizar el acto de copiar código de Stack Overflow? Pero espera, hay más. Una vez que establecimos un sistema para reaccionar cada vez que alguien escribía Command+C, nos dimos cuenta de que también había una oportunidad para aprender sobre cómo la gente utiliza nuestro sitio. Pudimos catalogar cada comando de copia realizado en Stack Overflow en el transcurso de dos semanas, y esto es lo que encontramos.
Atajo especial para pegar
La opción Pegado especial puede hacer que la tarea de pegar texto sea más fácil, ya que le permite elegir el formato que desea mantener (origen o destino) o eliminar todo el formato y sólo pegar el texto. Si tiene problemas con la opción Pegado Especial, continúe con las resoluciones que se indican a continuación.
Utilizar el evento Worksheet_SelectionChange borrará el portapapeles, lo que desactiva la opción Pegar Especial. Para habilitar la opción, necesita establecer el valor de la propiedad Application.EnableEvents a False.
Asegúrese de que todas las instancias de los navegadores web que utiliza están cerradas e intente utilizar la opción Pegado Especial de nuevo. El Pegado Especial no funcionará si su navegador web está causando el conflicto. Windows Internet Explorer (8-9) no entra en conflicto con la opción Pegado especial en Excel 2010. Los complementos de terceros pueden causar una variedad de problemas, uno de los cuales es el conflicto con la opción Pegado especial. Para determinar si un complemento está causando el problema:
Pegar especial vba
Por defecto, cuando copias (o cortas) y pegas en Excel, todo lo que hay en la celda o rango de origen -datos, formato, fórmulas, validación, comentarios- se pega en la celda o celdas de destino. Esto es lo que ocurre cuando pulsas CTRL+V para pegar. Como esto puede no ser lo que quieres, tienes muchas otras opciones de pegado, dependiendo de lo que copies.
Por ejemplo, puede que quieras pegar el contenido de una celda, pero no su formato. O quizás quieras transponer los datos pegados de filas a columnas. O puede que necesites pegar el resultado de una fórmula en lugar de la propia fórmula.
Seleccione Inicio, seleccione el icono del portapapeles (Pegar) y elija la opción de pegado específica que desee. Por ejemplo, para pegar sólo el formato de la celda copiada, seleccione Formato . Esta tabla muestra las opciones disponibles en el menú Pegar:
Después de pegar una fórmula copiada, debe verificar que todas las referencias de las celdas son correctas en la nueva ubicación. Las referencias de celda pueden haber cambiado según el tipo de referencia (absoluta, relativa o mixta) utilizado en la fórmula.