Avatar billede hans.simon22 Juniormester
27. maj 2020 - 16:37 Der er 1 kommentar og
2 løsninger

Visual Basic Code

Hejsa,

Er igang med at finde personen og alle de informationer om den samme person.

Der er 6 personer i alt, og de registrerer alle deres betalinger i programmet.
I løbet af året har de registreret mange betalinger.
Jeg skal finde en gennemsnits-beløb af en personens betalinger.
Det samme proces skal gøres for alle personer.

Personerne findes i Kolonne A2:A182
Deres betalinger i D2:D182


Har skrevet følgende:

Private Sub home()

        Dim myCell As Range
        Dim Myrange As Range
        Dim totalCells
       
       
        Set Myrange = Worksheets("Betalinger").Range("D2:D182")
 
        totalCells = 0
       
        For Each myCell In Myrange
       
            If myCell.Value = "Anika" Then
            totalCells = totalCells + 1
            End If
           
        Next myCell
       
        Worksheets("Betalinger").Cells(2, 5).Value = totalCells
       
End Sub
       

Den viser antal betalinger for personen, som hedder Anika.
Nu skal jeg finde summen af betalinger i alt. og dividere med den tal, som ligger i række 2, kolonne 5.


hvordan kan det gøres i Visual basic?
Avatar billede store-morten Ekspert
27. maj 2020 - 23:13 #1
Prøv:
Private Sub home()

'Tæller antal: Anika i kolonne A. Skrives i celle E2
Worksheets("Betalinger").Cells(2, 5).Value = _
WorksheetFunction.CountIf(Worksheets("Betalinger").Range("A2:A182"), "Anika")

'Sum af Anika´s betalinger i kolonne D. Skrives i celle F2
Worksheets("Betalinger").Cells(2, 6).Value = _
WorksheetFunction.SumIf(Worksheets("Betalinger").Range("A2:A182"), "Anika", _
Worksheets("Betalinger").Range("D2:D182"))

'Sum af Anika´s betalinger / Antal af Anika. Skrives i celle G2
Worksheets("Betalinger").Cells(2, 7).Value = _
WorksheetFunction.SumIf(Worksheets("Betalinger").Range("A2:A182"), "Anika", _
Worksheets("Betalinger").Range("D2:D182")) / _
WorksheetFunction.CountIf(Worksheets("Betalinger").Range("A2:A182"), "Anika")

End Sub
Avatar billede store-morten Ekspert
28. maj 2020 - 08:29 #2
Eller:
Private Sub home()

Antal = WorksheetFunction.CountIf(Worksheets("Betalinger").Range("A2:A182"), "Anika")

Total = WorksheetFunction.SumIf(Worksheets("Betalinger").Range("A2:A182"), "Anika", Worksheets("Betalinger").Range("D2:D182"))

Worksheets("Betalinger").Cells(2, 5).Value = Total / Antal

End Sub
Avatar billede store-morten Ekspert
28. maj 2020 - 08:33 #3
Eller på en linie:
Worksheets("Betalinger").Cells(2, 5).Value = WorksheetFunction.SumIf(Worksheets("Betalinger").Range("A2:A182"), "Anika", Worksheets("Betalinger").Range("D2:D182")) / WorksheetFunction.CountIf(Worksheets("Betalinger").Range("A2:A182"), "Anika")
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester