Pessoal, aprendendo a trabalhar com vetores agora:
De uma planilha que tenho diversas linhas e colunas preenchidas quero fazer um vetor que percorre cada coluna e faz os cálculosde uma fórmula de médias, mas tá dando erro "Subscrito fora do intervalo."
Será que alguém pode me dizer o que há de errado?
Segue o código:
Public Sub carregaMM()
'Determinando a quantidade de colunas já preenchidas
Dim Z As Long
Dim T As Long
Dim quantidade As Long
Z = 1
T = 1
Do While Z = 1
If ThisWorkbook.Sheets("Plan1").Cells(1, T).Value <> "" Then
T = T + 1
Else
Z = 0
End If
Loop
quantidade = T - 1
'Declaração de variáveis para uso na média
Dim MM3 As Double
Dim VALOR() As String
Dim i As Long
Dim k As Long
'Inicia os cálculos linha a linha
Dim totaldelinhas As Long
totaldelinhas = ThisWorkbook.Sheets("Plan1").Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To totaldelinhas
'Vetor VALOR é o vetor que armazena o valor que queremos
VALOR(k) = ThisWorkbook.Sheets("Plan1").Cells(i, quantidade - k).Value
'Médias móveis
MM3 = VALOR(0) + VALOR(1) + VALOR(2)
MM3 = MM3 / 3
'Imprime o nome na 1ª coluna
ThisWorkbook.Sheets("Plan2").Cells(i, 1).Value = ThisWorkbook.Sheets("Plan1").Cells(i, 1).Value
ThisWorkbook.Sheets("Plan2").Cells(i, 2).Value = MM3
Next i
End Sub
Pergunta
Zow
Pessoal, aprendendo a trabalhar com vetores agora:
De uma planilha que tenho diversas linhas e colunas preenchidas quero fazer um vetor que percorre cada coluna e faz os cálculosde uma fórmula de médias, mas tá dando erro "Subscrito fora do intervalo."
Será que alguém pode me dizer o que há de errado?
Segue o código:
Public Sub carregaMM() 'Determinando a quantidade de colunas já preenchidas Dim Z As Long Dim T As Long Dim quantidade As Long Z = 1 T = 1 Do While Z = 1 If ThisWorkbook.Sheets("Plan1").Cells(1, T).Value <> "" Then T = T + 1 Else Z = 0 End If Loop quantidade = T - 1 'Declaração de variáveis para uso na média Dim MM3 As Double Dim VALOR() As String Dim i As Long Dim k As Long 'Inicia os cálculos linha a linha Dim totaldelinhas As Long totaldelinhas = ThisWorkbook.Sheets("Plan1").Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To totaldelinhas 'Vetor VALOR é o vetor que armazena o valor que queremos VALOR(k) = ThisWorkbook.Sheets("Plan1").Cells(i, quantidade - k).Value 'Médias móveis MM3 = VALOR(0) + VALOR(1) + VALOR(2) MM3 = MM3 / 3 'Imprime o nome na 1ª coluna ThisWorkbook.Sheets("Plan2").Cells(i, 1).Value = ThisWorkbook.Sheets("Plan1").Cells(i, 1).Value ThisWorkbook.Sheets("Plan2").Cells(i, 2).Value = MM3 Next i End SubLink para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.