Ir para conteúdo
Fórum Script Brasil
  • 0

VETOR(k) Sendo que k é o número da coluna de uma planilha


Zow

Pergunta

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

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Se seu Vetor só vai ter tamanho 3, informe isso quando o declarar... e se vai trabalhar com numeros defina seu tipo como Integer, Long ou Double...você o colocou como String e está efetuando cálculos com ele...

pode até funcionar mas não é elegante.

Dim VALOR(3) As Double

VALOR(0) = 10.8
VALOR(1) = 20.4
VALOR(2) = 30.1

' Um vetor de 3 valores Double
Quando quiser pegar os valores que estão dentro do vetor fica mais simples usar o "For" com "LBound" e "UBound"
Dim n As Integer
Dim Soma As Double

  For n = LBound(VALOR) To UBound(VALOR)
      Soma = Soma + VALOR(n)
  Next n

' O resultado dessa soma está na variável Soma...

Estou no trabalho quando chegar vejo melhor esse teu erro...

mas fica a dica :rolleyes:

Link para o comentário
Compartilhar em outros sites

  • 0

Não posso ir armazenando os valores em Loop?

Tipo:

For k = 1 to Quantotal                                                                                    'Quantotal é a quantidade total de vetores 

VALOR(k) = ThisWorkbook.Sheets("Plan1").Cells(i, quantidade - k).Value

Next k

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...