Tengo el siguiente código, que funciona bien para copiar las células completas a su nuevo destino.Utilizando rangos, ¿cómo puedo hacer que una pasta .COPY DESTINATION como VALUES
Dim ws As Worksheet, rng As Range
Set ws = Sheets("Duplicates")
Set rng = ws.Range("A2")
rng.Copy Destination:=Range("A2:A" & Range("G" & Rows.Count).End(xlUp).Row)
- ¿Es posible hacer que hacer frente un
paste special
. - ¿O es que necesito dividir el copiar/pegar en dos líneas usando un rango de dos objetos ?
EDIT:
derecho, hemos llegado a la conclusión de que no se puede tener una pasta especial en la misma línea como una copia. Lo que también descubrí es que quizás no quieras hacerlo de todos modos.
Si copia una fórmula del Registro 1 y la pega en todos los registros como VALUES
, obtendrá el valor de la fórmula para el primer registro copiado.
Esto no es lo que quería. Entonces debe copiar las fórmulas a todos los registros como fórmulas, luego copie esas fórmulas y pegue como valores.
Dim ws As Worksheet, rng As Range
Set ws = Sheets("Duplicates")
establecer la primera gama (célula individual con fórmula) y copiar/pegar el contenido a la parte inferior de la hoja de cálculo basado en Col G
:
Set rng = ws.Range("A2")
rng.Copy Destination:=Range("A2:A" & Range("G" & Rows.Count).End(xlUp).Row)
Seleccione la formule recién pegado , desde la segunda fila hacia abajo. Copiarlos A continuación, pegue los contenidos como valores en el mismo lugar.
Set rng = ws.Range("A3:A" & Range("G" & Rows.Count).End(xlUp).Row)
rng.Copy
rng.PasteSpecial (xlPasteValues)
Application.CutCopyMode = False
Ver una respuesta anterior que escribí aquí: http: // stackoverflow .com/questions/12721781/worksheet-paste-values-save-as-then-return-the-original-file-using-vba/12723462 # 12723462 – mattboy
Gracias @mattboy, pero eso no responde totalmente a mi pregunta. Quiero que la línea única pegue una especial. es posible? – aSystemOverload
No es que yo sepa. Si es posible, me encantaría saberlo, ¡ojalá alguien tenga una respuesta! – mattboy