No está disponible el método de edición y pegado.
Estoy intentando un código simple que corta una tarea de una parte de mi archivo de proyecto y la pega en otra parte – código abajo.
Cuando ejecuto el código, va a la depuración: error de tiempo de ejecución 1100: El método no está disponible en esta situación. y resalta EditPaste. Cuando voy a depurar y lo ejecuto (sin cambios), ¡funciona bien! Por favor ayuda, ¿cómo puedo evitar que aparezca el error de tiempo de ejecución?
Sub Mover()
Dim i Como Integer
i = ActiveCell.Task.id
' Quiero seleccionar manualmente la tarea que quiero mover:
SeleccionaFila Fila:=0, filaRelativa:=True
EditCut
' Quiero pegarlo en la fila 2 de mi agenda
SeleccionaFila Fila:=2, filaRelativa:=False
' Aquí se detiene el depurador, pero en modo de depuración, ¡funcionará si lo vuelvo a ejecutar!
EditPaste
' Esta línea vuelve a donde estaba en la agenda
Application.Find Field:="ID", test:="equals", value:=i + 1
End Sub
davy.ai
Posible solución
El problema con el método
EditPaste
que no está disponible en ciertas situaciones puede estar relacionado con el momento en que se llama. Una forma de evitar este error en tiempo de ejecución es agregar una breve pausa antes de llamar al métodoEditPaste
para asegurarse de que el portapapeles tenga suficiente tiempo para actualizarse después de que se haya ejecutado el métodoEditCut
.Tenga en cuenta que el método
Application.Wait
pausa la macro durante un intervalo de tiempo especificado (en este caso, medio segundo) antes de ejecutar la siguiente línea de código. Esto debería dar suficiente tiempo para que el métodoEditCut
se complete y para que se actualice el portapapeles, lo que permite que el métodoEditPaste
se ejecute sin errores.Otra forma de evitar este problema es utilizar un método alternativo que implica copiar y pegar la tarea en lugar de cortar y pegarla. Esto se puede hacer utilizando el método
EditCopy
en lugar del métodoEditCut
.Utilizando este enfoque, la tarea se copia primero al portapapeles utilizando el método
EditCopy
, y luego se pega en la ubicación deseada utilizando el métodoEditPaste
. Esto debería funcionar sin errores de tiempo de ejecución ni la necesidad de una pausa entre los dos métodos.