Men jeg kan ikke få det til at fungere. Hvad gør jeg galt?
---------------
2:
Der skal skæres hhv 20, 25 og 15 rør af længderne 100, 120 og 150 fra et stort rør som er 1000.
Dim DemLen(100, 120, 150) As Variant Dim Demand(20, 25, 15) As Variant Dim Prod(0, 0, 0) As Variant
MaxLen = 100 i = 0 j = 0
While Prod(j) <= Demand(j) If Prod(j) >= Demand(j) Then j = j + 1 End If While DemLen(i) <= MaxLen And DemLen(i) > 0 If Prod(i) < Demand(i) Then Prod(i) = Prod(i) + 1 Cells(j, i).Value = Cells(j, i).Value + 1 MaxLen = MaxLen - DemLen(i) ElseIf MaxLen > DemLen(i) Then i = i + 1 ElseIf Demand(i) - Prod(i) = 0 Then i = i + 1 End If Wend Wend
Det fungerer egentligt som det skal, men følgende linje gør det hele ret langsomt:
Cells(j, i).Value = Cells(j, i).Value + 1
Er der en måde hvorpå jeg kan opsamle dete hele i en tabel og så skrive det hele til sidst vha
Range("A1:C3")=[et eller andet smart]
Det jeg mangler er egentlig en tabel hvor jeg kan hente tallene ud vha række og kolonnenummer.
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Men den gør det ved at sætte A1 til 1, så 2, så 3 osv og skrive det hele i excel på samme tid. Hvordan kan jeg gemme tallet i en tabel?
Jeg kan lave en Array til hver række og så gemme minvar der, men i nogle tilfælde når jeg op over 1000 rækker, hvorfor det ikke synes særligt tiltalende :-P
Dim MaxLen, I, X As Integer Dim DLW As Integer, TPC As Integer, Antal() As Integer DLW = Range("C4").End(xlToRight).Column - 2 ' finder antal forskellige længder, bruger den også til at finde antal stk. ReDim Antal(DLW) TPC = [C10] MaxLen = Cells(2, 3).Value Dim DemLen As Variant Dim Demand As Variant Dim Waste_And_Prod As Variant Range("C19:X60500,C7:W7,c10").ClearContents 'emty cells Waste_And_Prod = Range(Cells(19, 3), Cells(19 + TPC, 3 + DLW))
If MaxLen < Application.WorksheetFunction.Max(DemLen) Then 'Check if pipes are long enough MsgBox ("Demanded length(s) may not exceed the length of the pipe!") End End If For X = 1 To TPC ' antal længder For I = 1 To DLW ' antal forskellige stykker Do Until DemLen(1, I) >= MaxLen If Antal(I - 1) >= Demand(1, I) Then Exit Do ' dropper ud hvis antallet er nået Waste_And_Prod(X, I + 1) = Waste_And_Prod(X, 1 + I) + 1 ' skriver at der er lavet 1 eller flere MaxLen = MaxLen - DemLen(1, I) ' holder styr på resten af længden Antal(I - 1) = Antal(I - 1) + 1 ' tæller antallet af stykker Waste_And_Prod(X, 1) = MaxLen ' gemmer spildet "Waste" DoEvents Loop
Som du selv gør opmærksom på, så er det nemt at implementere, hvis modellen skal gøres klar til brug IRL.
Derudover kunne der laves en række features der ville gøre modellen mere brugervenlig.
Eksempelvis at den sorterer DemLen aftagende, hvis brugeren ikke selv indtaster dem aftagende. Ligeledes hvis brugeren indtaster samme DemLen to gange, så trækkes de automatisk sammen i én celle.
Hvis modellen skulle være brugbar skulle den også generere en udskriftsvenlig produktionsplan
Synes godt om
Ny brugerNybegynder
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.