Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

290
Vistas
¿Cómo cambiar el valor de una celda con Excel vba usando una dirección de celda que está dentro de una celda en otra hoja de trabajo?

Tenemos dos hojas de trabajo:

  1. Referencia
  2. Operador

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:

  1. Capturando la referencia en d2 con una variable:
 Dim NewRNG as Range NewRNG = Range(Range("d2").value).value

No hay suerte aquí.

  1. Encontrar la celda de referencia en Operador y usar la dirección de la celda encontrada
 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

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

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()
about 4 years ago · Santiago Trujillo Denunciar

0

¡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
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda