error hlookup en do while
Publicado por DIEGO (2 intervenciones) el 06/03/2019 01:01:51
Buenas tardes
tengo una serie de columnas
![1](/usr/340000/340360/5c7f0a4d222ad-1.JPG)
estas hacen un lookup horizontal en la siguiente tabla
![2](/usr/340000/340360/5c7f0ab473bcb-2.JPG)
como se puede ver en la fila 3 aparece una nueva forma en la que se acomodan los campos de búsqueda por lo que esta tiene que tomarse como referencia para las filas 4 y 6. Lo mismo pasa para la fila 8 que tiene que usar a la 7 como referencia. el resultado final que pretendo es el siguiente:
![3](/usr/340000/340360/5c7f0c1fa190d-3.JPG)
para esto he hecho el siguiente código, aclaro que no soy programador y que seguramente hay cosas que se pueden mejorar
Al correrla me hace la búsqueda de la primera fila correctamente
![4](/usr/340000/340360/5c7f0d88a823f-4.JPG)
Pero después me marca error 1004 tiempo de ejecusión, usando F8 encontré el problema en
Cells(x, n).Value = WorksheetFunction.HLookup(Cells(1, n).Value, ran, x, 0)
Espero alguien pueda ayudarme, saludos
tengo una serie de columnas
estas hacen un lookup horizontal en la siguiente tabla
como se puede ver en la fila 3 aparece una nueva forma en la que se acomodan los campos de búsqueda por lo que esta tiene que tomarse como referencia para las filas 4 y 6. Lo mismo pasa para la fila 8 que tiene que usar a la 7 como referencia. el resultado final que pretendo es el siguiente:
para esto he hecho el siguiente código, aclaro que no soy programador y que seguramente hay cosas que se pueden mejorar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Sub LookUp()
Dim ran As Range
Dim w As String
Dim x As Integer
Dim y As Integer
Dim m As Integer
Dim r As Integer
Worksheets("1").Select
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
y = Selection.count
x = 1
For x = 1 To y
w = Left(Cells(x, 1), 1)
If w = "/" Then
Cells(x, 5).Value = "/"
End If
Next x
For x = 1 To y
Worksheets("1").Select
w = Left(Cells(x, 1), 1)
If w <> "/" Then
Cells(x, 5).Select
Range(Selection, Selection.End(xlUp)).Select
m = Selection.count
r = x - m + 1
Set ran = Worksheets("1").Range(Cells(r, 1), Cells(x, 4))
Worksheets("2").Select
Dim n As Integer
n = 1
Do While Cells(1, n).Value <> ""
Cells(x, n).Value = WorksheetFunction.HLookup(Cells(1, n).Value, ran, x, 0)
n = n + 1
Loop
End If
Next x
End Sub
Al correrla me hace la búsqueda de la primera fila correctamente
Pero después me marca error 1004 tiempo de ejecusión, usando F8 encontré el problema en
Cells(x, n).Value = WorksheetFunction.HLookup(Cells(1, n).Value, ran, x, 0)
Espero alguien pueda ayudarme, saludos
Valora esta pregunta
![Me gusta: Está pregunta es útil y esta clara Me gusta: Está pregunta es útil y esta clara](/img/img.png?11.51)
![NO me gusta: Está pregunta no esta clara o no es útil No me gusta: Está pregunta no esta clara o no es útil](/img/img.png?11.51)
0