none
Como aplicar cálculos na transferência de dados entre matrizes? RRS feed

  • Pergunta

  • Prezados, peço por gentileza ajuda com esta situação, estou tentando copiar os dados de uma matriz inicial e depois colar em outra matriz somando o valor de cada linha da matriz inicial com "-1462" e depois fazer este mesmo calculo porém se ele der erro colocar a linha como vazia, gostaria de trabalhar com matrizes para garantir a performance do VBA tento em vista que já trabalho com este código porém com menos performance por não estar usando matrizes.

    Quando aplico o código dá erro no trecho "form1(i, 1) = base(i, 6) - 1462" com a notificação "Erro em tempo de execução '13': Tipos incompatíveis"

    Sub ATT_Relatorios()
     
        Dim Linha As Long 
        Dim Relatorio As String, Main As String, imagem As String, imagem2 As String, imagem3 As String, imagem4 As String 
        Dim Prim As Workbook, Sec As Workbook 
        Dim Area As Range 
        Dim base As Variant, form1 As Variant, form2 As Variant
        Dim nLin As Long, i As Long
        Dim olApp As Object, janela As Object 
        Dim Grafico As Chart 

        Dim AbaTemporaria As Worksheet 

        Application.DisplayAlerts = False

       
        
        '00 Data correta
        If Range("A10") <> Range("A11") Then
     
                      base = Range("C2").CurrentRegion.Value
           
                       nLin = UBound(base, 1) - 1
           
                       ReDim form1(1 To nLin, 1 To 1) As Variant
           
                       For i = 1 To nLin
               
                                    form1(i, 1) = base(i, 6) - 1462
           
                        Next
           
                        ReDim form2(1 To nLin, 1 To 1) As Variant
           
                        For i = 1 To nLin
               
                                     form2(i, 1) = Application.WorksheetFunction.IfError(base(i, 7) - 1462, "")
           
                         Next
     
        Application.DisplayAlerts = True
        MsgBox "Atualização finalizada", vbInformation, "OK" 
     
     
     
    End Sub

    • Editado Kvothe Ruh terça-feira, 29 de novembro de 2022 23:40
    terça-feira, 29 de novembro de 2022 21:32

Todas as Respostas

  • Bom dia.

    Poderia tentar:

    form1(i, 1) = CLng(base(i, 6)) - 1462
    Se não der certo, informe por favor o conteúdo da matriz:
    base(i, 6)

    Abraço


    Filipe Magno

    quarta-feira, 28 de dezembro de 2022 13:20