Tenemos dos hojas de trabajo:
Suponga que la celda d2 en la hoja de Referencia contiene el valor $a$25 .
¿Cómo cambiar el valor de la celda $a$25 en la hoja de Operador usando Excel VBA (haciendo referencia a la dirección de d2 en la hoja de Referencia)?
Lo que he probado:
Dim NewRNG as Range NewRNG = Range(Range("d2").value).valueNo hay suerte aquí.
Sub Find_Cell() Dim RNG As Range Dim NewRNG as Range With Sheets("Operator").Range("A:A") Set RNG = .Find(What:=Sheets("Reference").Range("d2"), _ After:=.Cells(.Cells.Count), _ LookIn:=xlValues, _ LookAt:=xlWhole, _ SearchOrder:=xlByRows, _ SearchDirection:=xlNext, _ MatchCase:=False) End With NewRNG = RNG.Address NewRNG.select End Sub**en este caso, no puedo establecer rng.address en una variable
Como esto:
Dim addr As String addr = Sheets("Reference").Range("D2").Value 'get the cell address Sheets("Operator").Range(addr).Value = "Test" 'pass the address to Range()¡Para definir la variable NewRNG tienes que usar "Set"!
Option Explicit Sub setRange() Dim NewRNG As Range Set NewRNG = Range(Range("B2").Value) Range("B5").Value = NewRNG.Address Range("B6").Value = NewRNG.Value Sheets("Operator").Range(Range("B2").Value) = "Test" End Sub Sub setRange2() ' variant including a check and error handling Dim NewRNG As Range On Error Resume Next Set NewRNG = Range(Range("B2").Value) If Err() Then MsgBox ("You need to set a Range definition (eg ""B3"") in field B2!") Exit Sub End If On Error GoTo 0 Range("B5").Value = NewRNG.Address Range("B6").Value = NewRNG.Value Sheets("Operator").Range(Range("B2").Value) = "Test" End Sub