Vapaa kuvaus

Isaan Rules WFF CCC If you walked away smiling-then for you the price was right Keep Exceling Suosikkibändit/artistit: Queen, Rammstein, genesis, Bruce Bringsteen, Kino, Mandref Mann Earth band Who Lempikirjat: ohjelmointi... Suosikkipalstat Suomi24 Keskusteluissa: EXCEL, Kivitalot, EPS En pidä: pakkanen ja loskakelit Ruoka & juoma: loimulohi ja valkkari Linkit: http://www.kundepuu.com, Khorat Koulutus: --- Ammatti: Tiede/teknologia Työskentelen: freelancer Ase tai siviilipalvelus: yliluutnantti Siviilisääty: Varattu Lapset: --- Hakusanat: Thaimaa, korat, Excel, VBA, ACAD, CNC, Polyurea, EPS, MgO elementti

Aloituksia

7

Kommenttia

1377

  1. Ilmeisesti sulla oli saman taulukon koodissa 2 saman nimistä proseduuria?
  2. tavoite luku solussa B2
    tsekattavat luvut A2:AXX
    tulos C2:CXX
    nyt kaikki variaatiot tulikin samalla, jos tarttee vaan "ns". ekan niin muutellaan...

    ja suorita makro Haeluvut()

    kopioi koodi moduuliin...

    Option Explicit
    Function Uusitulos(Nykyinen, Uusi)
    If Nykyinen = "" Then
    Uusitulos = Uusi
    Else
    Uusitulos = Nykyinen & ";" & Uusi
    End If
    End Function

    Sub Lukujono(ByVal Tavoite, Luvut(), ByVal Indeksi As Integer, ByVal NykySumma, ByVal Ero As Double, ByRef Tulos(), ByVal Nykyinen As String)
    Dim i As Integer
    For i = Indeksi To UBound(Luvut)
    If Abs(NykySumma + Luvut(i) - Tavoite) <= Ero Then
    If Nykyinen = "" Then
    Tulos(UBound(Tulos)) = i + 1
    Else
    Tulos(UBound(Tulos)) = Nykyinen & ";" & i + 1
    End If

    Tulos(UBound(Tulos)) = Uusitulos(Nykyinen, i + 1)
    ReDim Preserve Tulos(UBound(Tulos) + 1)
    ElseIf Indeksi < UBound(Luvut) Then
    Lukujono Tavoite, Luvut(), i + 1, NykySumma + Luvut(i), Ero, Tulos(), Uusitulos(Nykyinen, i + 1)
    End If
    Next i
    End Sub

    Sub Haeluvut()
    Dim vika As Long
    Dim i As Long
    Dim Tavoite
    Dim Tulos()
    Dim Luvut()
    Tavoite = Range("B2").Value
    Range("C2:C1000") = ""
    vika = Range("A65536").End(xlUp).Row
    Luvut = Application.WorksheetFunction.Transpose(Range("A2:A" & vika).Value)
    ReDim Tulos(0)
    Lukujono Tavoite, Luvut, LBound(Luvut), 0, 0.00000001, Tulos, ""
    Range("A2").Offset(0, 2).Resize(UBound(Tulos) - LBound(Tulos) + 1, 1).Value = Application.WorksheetFunction.Transpose(Tulos)
    End Sub

    Keep EXCELing
    @Kunde