J'ai deux rangées de données, la pression de rupture et la profondeur. Je dois coder dans vba pour générer l'équation polynomiale (quadratique dans ce cas), puis afficher les coefficients dans la feuille de calcul. J'utilise Linest et Index. Pour ces deux lignes de données, je ne sais pas combien de jeux de données j'ai parce que j'ai besoin de supprimer d'abord des données bruitées (la définition des données bruitées est aléatoire donc le nombre de jeux de données varie à chaque fois). quelque chose comme "A17: A80" dans la fonction la plus linéaire. Cependant, il semble que la fonction de feuille de calcul dans vba ne peut pas fonctionner pour les tableaux.vba utiliser linest pour calculer les coefficients polynomiaux et l'indice à la sortie
Dim Frac_x, Frac_y As Range
Dim X
Set Frac_x = Range(Cells(17, 1), Cells(e - 1, 1))
Set Frac_y = Range(Cells(17, 7), Cells(e - 1, 7))
X= Application.WorksheetFunction.LinEst(Frac_y,Frac_x,{1,2})
Cells(3, 8).Value = Application.WorksheetFunction.Index(X, 1, 1)
Cells(4, 8).Value = Application.WorksheetFunction.Index(X, 1, 2)
Cells(5, 8).Value = Application.WorksheetFunction.Index(X, 1, 3)
Dans ce code, e est défini dans le code précédent, (e-1) représente le nombre total de jeux de données. Cependant, je continue à obtenir { is a invalid character
pour la ligne: X= Application.WorksheetFunction.LinEst(Frac_y,Frac_x,{1,2})
Je l'ai fait quelques recherches et a modifié le code:
Dim Frac_x, Frac_y As Range
Dim X
Set Frac_x = Range(Cells(17, 1), Cells(e - 1, 1))
Set Frac_y = Range(Cells(17, 7), Cells(e - 1, 7))
X = Application.Evaluate("=linest(" & Frac_y & "," & Frac_x & "^ {1,2}))")
Cells(3, 8).Value = Application.WorksheetFunction.Index(X, 1, 1)
Cells(4, 8).Value = Application.WorksheetFunction.Index(X, 1, 2)
Cells(5, 8).Value = Application.WorksheetFunction.Index(X, 1, 3)
Je continue à obtenir l'erreur Type Dismatch
pour la ligne: X = Application.Evaluate("=linest(" & Frac_y & "," & Frac_x & "^ {1,2}))")
Je suis sûr que les deux gammes frac_y et frac_x leurs correspondances de type. Quelqu'un pourrait-il aider?
Qu'est-ce que '{1,2}' pour exactement? Essayez ceci: 'X = Application.LinEst (Frac_y, Frac_x, array ({1,2}))' –
Essayez de changer Dim Frac_x, Frac_y As Range à Dim Frac_x comme range, Frac_y As Range comme premier sera assombrit Frac_x as une variante plutôt qu'une gamme. –