Manterner valor de una Variable en una macro

10/02/2005 - 21:07 por RENE | Informe spam
Hola Amigos del Foro,

De antemano agradezco la ayuda que me puedan proporcionar.
Al ejecutar dos macros (una de ellas anidada dentro de la otra) recibo
el mensaje:
***********************************************************
error: Se ha producido el error '1004' en tiempo de ejecución:
Error en el metodo 'Range' de objeto '_Global'
***********************************************************
Lo que intento hacer es: pasar el valor de la variable 'Fila' la cual es
usada en la MacroAA y esta variable pueda ser usada tambien en
la MacroBB.
Proporciono brevemente el codigo:

sub MacroAA
fila=5 'Esta es la variable fila
ciclo:
{mas codigo}
moveleft="B" & fila
Range(moveleft).select
MacroBB '-Esta es la llamada a la macroBB
fila =fila + 1 |
goto ciclo |
end sub |
V
MacroBB
{mas codigo.}
moveright="A" & fila
Range(moveright).select
{mas codigo...}
end sub
 

Leer las respuestas

#1 Héctor Miguel
11/02/2005 - 05:35 | Informe spam
hola, RENE !

... dos macros (una... anidada dentro de la otra)... mensaje:
... error '1004' en tiempo de ejecucion en el metodo 'Range' de objeto '_Global'
... intento... pasar... la variable 'Fila'... usada en la MacroAA y... pueda ser usada... en la MacroBB.
... brevemente el codigo:
sub MacroAA
fila=5 'Esta es la variable fila
ciclo: {mas codigo}
moveleft="B" & fila
Range(moveleft).select
MacroBB '-Esta es la llamada a la macroBB [...]



op1: declara [o mueve la declaracion de] la variable en la seccion de declaraciones ->del modulo<-
op2: agrega la variable ->como parametro<- en la macrobb ->y proveela en la instruccion que la llama<-

te sugiero que [de todas formas] consultes la ayuda en vba acerca de como declarar/usar variables
[para que comprendas que 'vida y alcance' de las variables 'depende' de ->donde son declaradas<-]
tambien sera importante que consultes acerca de los tipos asignados a las variables [boolean, integer, etc.]

si cualquier duda... ¿comentas?
saludos,
hector.

ejemplos:
op1:
Dim Fila As Long ' <= en la seccion de declaraciones [al 'tope'] del modulo
Sub MacroAA()
Fila = 5
{mas codigo}
MacroBB ' <= aqui la macrobb USA la variable 'tal como va siendo asignada
{mas codigo}
End Sub
Sub MacroBB()
{mas codigo}
End Sub

op2: =>la macroBB SOLO podra ser llamada por codigo<= OJO
Sub MacroAA()
Fila = 5
{mas codigo}
MacroBB Fila ' <= aqui llamas a la macrobb Y LE PROVEES el parametro
{mas codigo}
End Sub
Sub MacroBB(Fila) ' <= la macrobb REQUIERE del parametro Fila [o como le llames]
{mas codigo}
End Sub

Preguntas similares