- 01 Dez 2020 às 18:14
#60845
Boa tarde!
Tenho esse código para ler e incrementar nas próximas linhas os valores do dicionário porém quando ele lê as próximas linhas retorna o valor 0. Alguém poderia me ajudar?
Sub teste_m²()
i = 6 'variável para pular linha
j = 17
Dim TheVars As Range, c As Range
Do While Cells(i, 7) <> "" 'variável para gravar o conteúdo da célula
Set TheVars = Worksheets("Mapeamento").Range("G" & i, "O" & i)
'Dictionary
Dim d
Set d = CreateObject("Scripting.Dictionary")
While j <= 22
d.Add Worksheets("Mapeamento").Cells(5, j).Value, Worksheets("Mapeamento").Cells(4, j).Value
j = j + 1
Wend
last = ""
current = ""
cont = 0
'laço importante
For Each c In TheVars
current = c.Value
If current <> last Then
'área correspondente do current + count
cont = cont + d(current)
End If
last = c.Value
Next c
Cells(i, 23) = cont
i = i + 1 'soma ela mesma, pula para próxima linha
Loop
End Sub
Tenho esse código para ler e incrementar nas próximas linhas os valores do dicionário porém quando ele lê as próximas linhas retorna o valor 0. Alguém poderia me ajudar?
Sub teste_m²()
i = 6 'variável para pular linha
j = 17
Dim TheVars As Range, c As Range
Do While Cells(i, 7) <> "" 'variável para gravar o conteúdo da célula
Set TheVars = Worksheets("Mapeamento").Range("G" & i, "O" & i)
'Dictionary
Dim d
Set d = CreateObject("Scripting.Dictionary")
While j <= 22
d.Add Worksheets("Mapeamento").Cells(5, j).Value, Worksheets("Mapeamento").Cells(4, j).Value
j = j + 1
Wend
last = ""
current = ""
cont = 0
'laço importante
For Each c In TheVars
current = c.Value
If current <> last Then
'área correspondente do current + count
cont = cont + d(current)
End If
last = c.Value
Next c
Cells(i, 23) = cont
i = i + 1 'soma ela mesma, pula para próxima linha
Loop
End Sub