que - Obtener valores de otra hoja en Excel usando VBA
macro para buscar datos en otra hoja de excel (5)
Hola, soy nuevo para destacar y tengo algunos problemas para obtener valores de otras hojas.
Tengo algunos valores en excel (sheet2) por ejemplo:
A B C D
- - - -
1 | 2 5 9 12
2 | 5 8 4 5
3 | 3 1 2 6
Estoy trabajando con estos valores en la hoja 2 y quiero obtener el resultado en la hoja 1. Cuando estoy utilizando mi código en la hoja 2, obtengo la respuesta correcta, pero cuando trato de usarla en otra hoja, obtengo el resultado de que los valores corresponden a las celdas de la hoja actual y no a la hoja2.
- Quiero obtener la suma de cada columna en la fila 4. y logro hacerlo, pero puedo usarlo solo en la hoja2.
Estoy usando "Con Application.WorksheetFunction" y quiero cambiar eso para obtener los valores de sheet2.
¿Puede ayudarme con eso y cómo establecer sheet2 como la hoja de activación?
Espero que mi pregunta sea clara.
Gracias
Eso será (para usted, ejemplo muy específico)
ActiveWorkbook.worksheets("Sheet2").cells(aRow,aCol).Value=someval
O
someVal=ActiveWorkbook.worksheets("Sheet2").cells(aRow,aCol).Value
Así que obtenga un clic de F1 y lea sobre la colección de hojas de cálculo, que contiene objetos de hoja de cálculo, que a su vez tiene una colección de celdas, que contiene objetos de celdas ...
Pruebe el comando de activación de la hoja de trabajo antes de necesitar datos de la hoja:
objWorkbook.WorkSheets(1).Activate
objWorkbook.WorkSheets(2).Activate
SomeVal = ActiveWorkbook.worksheets ("Sheet2"). Cells (aRow, aCol) .Value
no funcionó. Sin embargo, el siguiente código solo funcionó para mí.
SomeVal = ThisWorkbook.Sheets (2) .cells (aRow, aCol) .Value
Tratar
ThisWorkbook.Sheets("name of sheet 2").Range("A1")
para acceder a un rango en la hoja 2 independientemente de dónde está su código o qué hoja está activa actualmente. Para hacer que la hoja 2 sea la hoja activa, prueba
ThisWorkbook.Sheets("name of sheet 2").Activate
Si solo necesita la suma de una fila en una hoja diferente, no es necesario usar VBA en absoluto. Ingrese una fórmula como esta en la hoja 1:
=SUM([Name-Of-Sheet2]!A1:D1)
Sub TEST()
Dim value1 As String
Dim value2 As String
value1 = ThisWorkbook.Sheets(1).Range("A1").Value ''value from sheet1
value2 = ThisWorkbook.Sheets(2).Range("A1").Value ''value from sheet2
If value1 = value2 Then ThisWorkbook.Sheets(2).Range("L1").Value = value1 ''or 2
End Sub
Esto comparará dos valores de celdas de celdas y si coinciden, coloque el valor en la hoja 2 en la columna L.