10.03.2018, 13:58
Hallo zusammen,
Ich sammele Elemente in einem Array und möchte sie als erstes zählen und dann summieren bzw. dann noch einen Durchschnitt bilden.
Unten ist mein gesamter Code.
Was darin nicht funktioniert:
1. im Array unter myLevels1 werden 3 Elemente angezeigt (2, 2, 1), was auch richtig ist, aber unter iCount kommt nur 1.
2. Die Summe ist zum Schluss 0, müsste aber 5 sein
Wo liegt mein Fehler? Vielleicht etwas falsch deklarierert ?
Danke!
CODE:
Dim myAdresseName
Dim mySpalteName As String
Dim myZeileName As String
Dim myRngSkill As Range
Dim myRngMA As Range
Dim mySkill As String
Dim myLevelLang As String
Dim myLevel As Double
Dim myWorkbook As String
Dim myLevels1 As Variant
Dim myLevels As Variant
Dim mySkills1 As Variant
Dim mySkills As Variant
Dim myLevelRng As Range
On Error GoTo Errorhandler
myWorkbook = Application.ActiveWorkbook.Name
For Each myRngSkill In Range("A7:A8")
For Each myRngMA In Range("G6:J6")
If myRngSkill.Value = "x" And myRngMA.Value = "x" Then
myRngSkill.Activate
mySkill = myRngSkill.Offset(0, 1).Value
myAdresseName = ActiveCell.AddressLocal(False, False)
myZeileName = Mid(myAdresseName, 2, 2)
myRngMA.Activate
myAdresseName = ActiveCell.AddressLocal(False, False)
mySpalteName = Mid(myAdresseName, 1, 1)
Set myLevelRng = Range(mySpalteName & myZeileName)
myLevelRng.Activate
myLevelLang = ActiveCell.Value
If myLevelRng <> "" Then
myLevel = Right(myLevelLang, 1)
myLevels1 = myLevels1 & ", " & myLevel
End If
End If
Next
myLevels1 = Right(myLevels1, Len(myLevels1) - 2)
myLevels = Array(myLevels1)
iCount = UBound(myLevels, 1) - LBound(myLevels, 1) + 1
mySkills1 = mySkills1 & ", " & mySkill
mySkills = Array(mySkills1)
Range("AA" & myZeileName).Activate
myKosten = 0
Dim x
Dim total
x = myLevels
total = WorksheetFunction.Sum(x)
ActiveCell.FormulaR1C1 = "=" & total
Next
...
Ich sammele Elemente in einem Array und möchte sie als erstes zählen und dann summieren bzw. dann noch einen Durchschnitt bilden.
Unten ist mein gesamter Code.
Was darin nicht funktioniert:
1. im Array unter myLevels1 werden 3 Elemente angezeigt (2, 2, 1), was auch richtig ist, aber unter iCount kommt nur 1.
2. Die Summe ist zum Schluss 0, müsste aber 5 sein
Wo liegt mein Fehler? Vielleicht etwas falsch deklarierert ?
Danke!
CODE:
Dim myAdresseName
Dim mySpalteName As String
Dim myZeileName As String
Dim myRngSkill As Range
Dim myRngMA As Range
Dim mySkill As String
Dim myLevelLang As String
Dim myLevel As Double
Dim myWorkbook As String
Dim myLevels1 As Variant
Dim myLevels As Variant
Dim mySkills1 As Variant
Dim mySkills As Variant
Dim myLevelRng As Range
On Error GoTo Errorhandler
myWorkbook = Application.ActiveWorkbook.Name
For Each myRngSkill In Range("A7:A8")
For Each myRngMA In Range("G6:J6")
If myRngSkill.Value = "x" And myRngMA.Value = "x" Then
myRngSkill.Activate
mySkill = myRngSkill.Offset(0, 1).Value
myAdresseName = ActiveCell.AddressLocal(False, False)
myZeileName = Mid(myAdresseName, 2, 2)
myRngMA.Activate
myAdresseName = ActiveCell.AddressLocal(False, False)
mySpalteName = Mid(myAdresseName, 1, 1)
Set myLevelRng = Range(mySpalteName & myZeileName)
myLevelRng.Activate
myLevelLang = ActiveCell.Value
If myLevelRng <> "" Then
myLevel = Right(myLevelLang, 1)
myLevels1 = myLevels1 & ", " & myLevel
End If
End If
Next
myLevels1 = Right(myLevels1, Len(myLevels1) - 2)
myLevels = Array(myLevels1)
iCount = UBound(myLevels, 1) - LBound(myLevels, 1) + 1
mySkills1 = mySkills1 & ", " & mySkill
mySkills = Array(mySkills1)
Range("AA" & myZeileName).Activate
myKosten = 0
Dim x
Dim total
x = myLevels
total = WorksheetFunction.Sum(x)
ActiveCell.FormulaR1C1 = "=" & total
Next
...