ne peut pas affecter à la matrice de vba

Je suis en train de mettre en œuvre le code suivant et obtenez l'erreur -

cant attribuer à la matrice

Où est l'erreur ? Notez que si je tape Dim arrf() As Variant au lieu de Dim arrf(5) As Variant j'obtiens l'erreur -

incompatibilité de type

Public Function calc(ByVal value As Integer, ByVal num As Integer) As Variant()
Dim arr(5) As Variant
Dim x As Double
If value >= num Then
x = value - Application.RoundDown(value / num, 0) * num
arr(0) = x
arr(1) = num - arr(0)
arr(2) = Application.RoundUp(value / num, 0)
arr(3) = 1
arr(4) = Application.RoundDown(value / num, 0)
arr(5) = 1
Else
x = num - Application.RoundDown(num / value, 0) * value
arr(0) = x
arr(1) = value - arr(0)
arr(2) = Application.RoundUp(num / value, 0)
arr(3) = 1
arr(4) = Application.RoundDown(num / value, 0)
arr(5) = 1
calc = arr
End If
End Function
Sub cellsfunc()
With Application
.DisplayAlerts = False
.EnableEvents = False
.ScreenUpdating = False
End With
Dim lastrow As Integer
Dim counter As Integer
Dim arrf(5) As Variant
lastrow = Cells(Rows.Count, 2).End(xlUp).Row
For counter = 2 To lastrow Step 2
arrf = calc(Cells(4, counter), Cells(4, counter + 1))
Next counter
With Application
.DisplayAlerts = True
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub

merci d'avance à tous les assistants

  • vous avez besoin d'ajouter une condition où num est égal à 0, sinon vous aurez une erreur dans la ligne x = value - Application.RoundDown(value / num, 0) * num depuis que vous essayez de diviser être zéro
  • pour voir où est l'erreur, sélectionnez Pause Dans le Module de Classe dans les Options Générales de cpearson.com/excel/BreakInClassModule.aspx
InformationsquelleAutor shay | 2016-09-18