¿Como utilizar variables en una macro de excel?
Como dice la pregunta tengo problemas para utilizar variables en una macro de excel, especificamente en una formula de la macro:
ActiveCell.FormulaR1C1 = "=LOOKUP(RC[-12],R2C12,R15C12)"
Range("N2").Select
ActiveCell.FormulaR1C1 = "=LOOKUP(RC[-12],R2C12:R15C12)"
Range("N2").Select
Selection.Copy
Range("O2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=LOOKUP(RC[-12],R2C12:R15C12,R2C13:R15C13)"
Range("O2").Select
ActiveCell.FormulaR1C1 = "=LOOKUP(RC[-13],R2C12:R15C12,R2C13:R15C13)"
Range("P2").Select
ActiveCell.FormulaR1C1 = "=RC[-1]-RC[-3]"
Range("N2:P2").Select
Selection.AutoFill Destination:=Range("N2:P15"), Type:=xlFillDefault
Range("N2:P15").Select
Range("N2").Select
Esto es lo que grabe en la macro, en excel lo que hace es:
(Celda N2) =buscar(B2, L2:L12), (Celda O2) =buscar(B2, L2:L12, M2:M12)
despues (Celda P2)=O2-M2
Despues copia las celdas N2, O2 y P2 en las casillas N2:P15
Por ultimo selecciona la celda N2.
Lo que yo quiero hacer es utilizar variables en lugar de celdas fijas pero no logro incorporarlas a la macro ya tengo algo avanzado pero lo hace mal:
Private Sub CommandButton1_Click()
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim d As Integer
Dim x As Integer
Dim y As Integer
Dim saldo As Integer
Dim dif As Integer
b = 5
c = 2
d = 2
Do While Hoja9.Cells(d, 1) <> ""
d = d + 1
Loop
Range("a1").Select
For a = 0 To 30
If Hoja9.Cells(c, b) = 0 Then
Hoja9.Cells(c, b).Select
Else:
b = b + 1
End If
Next a
x = b - 2
y = b - 1
saldo = b + 1
dif = saldo + 1
xneg = (x) * (-1)
yneg = y * -1
ActiveCell.FormulaR1C1 = "=LOOKUP(RC[" & xneg & "],R &" & c & "& C &" & x & ",R &" & d & "& C &" & x & ")"
Hoja9.Cells(c, x).Select
ActiveCell.FormulaR1C1 = "=LOOKUP(RC[" & yneg & "],R &" & c & "& C &" & x & ":R &" & d & "& C &" & y & ")"
Hoja9.Cells(c, x).Select
Selection.Copy
Hoja9.Cells(c, saldo).Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=LOOKUP(RC[" & b & "],R &" & c & "& C &" & x & ":R &" & d & "& C &" & x & ",R &" & c & "& C &" & y & ":R &" & d & "& C &" & y & ")"
Hoja9.Cells(c, saldo).Select
ActiveCell.FormulaR1C1 = "=LOOKUP(RC[" & saldo & "],R &" & c & "& C &" & x & ":R &" & d & "& C &" & x & ",R &" & c & "& C &" & y & ":R &" & d & "& C &" & y & ")"
Hoja9.Cells(c, dif).Select
ActiveCell.FormulaR1C1 = "=RC[-1]-RC[-3]"
ActiveSheet.Range("N2:P2").Select
Selection.AutoFill Destination:=Range("N2:P15"), Type:=xlFillDefault
ActiveSheet.Range("N2:P15").Select
ActiveSheet.Range("N2").Select
End Sub
Corriendo esto se detiene en la segunda linea y me marca error 1004 y en la hoja de excel pone en la casilla una formula:"=buscar(B2, 2:2 &2& N:N &12, 2:2 &16& N:N &12).
Mi manera de programar es primitiva y por eso tengo este problema si pudueran ayudarme a solucionarlo estaria muy agradecido. Si alguien se interesa y necesita el archivo para porder enter mejor el asunto, paseme su correo y lo envio.