Macro ayuda

Como puedo depurar el siguiente error
Producido en la siguiente linea de esta macro
Selection.AutoFill Destination:=Range("G2:G1120")
ya que me lo ha indicado el asistente
Sub buscarbital()
'
' buscarbital Macro
' Macro grabada el 26/08/2004 por Check Plus
'
'
Range("G1").Select
ActiveCell.FormulaR1C1 = "Plaza"
Range("G2").Select
Workbooks.Open Filename:="G:\plazas.xls"
ThisWorkbook.Activate
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],[plazas.xls]Hoja2!C1:C2,2,FALSE)"
Selection.AutoFill Destination:=Range("G2:G1120")
Range("G2:G1120").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.End(xlUp).Select
Application.CutCopyMode = False
Windows("plazas.xls").Activate
ActiveWindow.Close
Range("G2").Select
End Sub

1 respuesta

Respuesta
1
Lo que debes tener en cuenta es la hoja sobre la cual harás la operación. Explico con tu código
Cuando llamas la linea:
Selection.AutoFill Destination:=Range("G2:G1120")
Estas haciendo referencia a una celda activa, ¿pero de cual hoja?, entonces antes debes poner Hoja1. Activate y Hoja1. Select, suponiendo que la celda sobre la que harás la operación esta en la hoja1.
Entonces la instrucción quedaría:
Hoja1. Activate
Hoja1.Select
Range("CeldaObjetivo").Select
Selection.AutoFill Destination:=Range("G2:G1120")
Ten en cuenta que si tu versión de excel es en ingles entonces cambia Hoja por Sheet
Si no entiendes, vuelve a escribir
La macro ya funciona pero no lo hace con la velocidad que yo esperaba por que hay una parte del proceso este
Range("G2:G1000").Select
Me imagino que es por la amplitud del rango que tarda mucho ya que tengo que terminar el proceso con la tecla esc y con esto me aparece un asistente con cuatro opciones, activo la opción continuar y ahora si termina la macro, si activo la opción depurar me aparece en amarillo lo siguiente
Range("G2:G1000").Select
existe alguna forma de hacer mas rapida la macro?
He depurado un poco la macro ya que ya no abro el libro en el cual se encuentra la base de datos ahora solamente tecleo la fórmula buscarv
Sub buscarbital()
'
' buscarbital Macro
' Macro grabada el 27/08/2004 por Check Plus
'
'
ActiveCell.FormulaR1C1 = "Plaza"
Range("G2").Select
ThisWorkbook.Activate
ActiveCell.FormulaR1C1 = _
"=+VLOOKUP(RC[-1],'G:\[plazas.xls]Hoja2'!C1:C2,2,FALSE)"
Range("G2").Select
ThisWorkbook.ActiveSheet.Range("G2").Select
Selection.AutoFill Destination:=Range("G2:G1000")
Range("G2:G1000").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Range("G1").Select
End Sub
Intenta con:
Selection.AutoFill Destination:=Range("G2:G1000")
Range("G2:G1000"). Copy
Selection. Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Range("G1").Select
Si no funciona escribe de nuevo
Entonces usa
Thisworkbook.Activesheet.Range("CeldaObjetivo").Select
Selection.AutoFill Destination:=Range("G2:G1120")
Si no funciona vuelve a contactarme
Disculpa si esa hoja por la cual me preguntas no es una hoja fija ya que va cambiar por que pienso introducirla a un complemento que es lo que tengo que hacer
La verdad es que no se mucho de programación, no sabría como introducir estas instrucciones dentro de la macro ya que esta macro la hice por medio de la grabadora
Me podrías ayudar a introducir estas instrucciones en la macro por favor para ir entendiendo como es que se hace
Cuando se usa Selection la hoja donde se llevara a cabo la operación debe estar activa. Para evitar estos errores acostumbro activar y seleccionar las hojas donde haré operaciones, más aun si lo estoy haciendo desde módulos, por ejemplo
HojaN. Activate
HojaN.Select
HojaN. Range("Direccion"). Operacion
Si aun falla vuelve a escribir

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas