В настоящее время у меня есть это:

В этой кнопке 1º я спрашиваю количество рабочих мест и рандомизирую время для этих работ от 1 до 10 в столбце B.

Private Sub Button1_Click()

Worksheets("Sheet1").Activate

Range("A1").Value = "tarefa"
Range("B1").Value = "tempo"

Dim N As Long
N = Application.InputBox(Prompt:="N tarefas?(ex. 7 = 6 tarefas)", Type:=1)
If N > Rows.Count Then
    N = Rows.Count
End If

For Z = 2 To N
    Cells(Z, 1) = Z - 1
    Cells(Z, 2) = WorksheetFunction.RandBetween(1, 10)
Next Z
Range("E1").Value = "total tarefas"
Range("E2").Value = N - 1
Range("E7").Value = "ultima celula em A"
Range("E8").Value = Range("A1").End(xlDown).Row

End Sub

В этой кнопке 2º я упорядочиваю значения из столбца B от наибольшего к наименьшему, спрашиваю количество машин и перечисляю машины. Я также определяю количество столбцов, которые необходимо будет сделать в соответствии с заданиями и количеством машин. выбран.

Private Sub Button2_Click()
Worksheets("Sheet1").Activate

Columns("A:B").Select                                                       
Selection.Sort Key1:=Range("B2"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Range("L1").Value = "máqs a usar?"                                          
Dim N As Long
M = Application.InputBox(Prompt:="N maq?(ex. 3 = 2 maq)", Type:=1)
If M < 3 Then                                                           
    M = 3
End If
If M > Columns.Count Then
    M = Columns.Count
End If

Range("E4").Value = "total maqs"
Range("E5").Value = M - 1

For i = 2 To M                                                           
   Cells(i, 12) = i - 1
Next i

Range("E10").Value = "colunas a fazer"
colunasAfazer = (Cells(2, 5) / Cells(5, 5))
Range("E11").Value = colunasAfazer
Range("E13").Value = "arredondamento"
Range("E14").Value = Round(Cells(11, 5) + 0.44)
arredondado = Range("E14").Value

For q = 1 To M        
    w = q + 1

Проблема приходит сюда. Я пытаюсь запустить программу в строке 2 (w = 2) столбца L, если он пуст, а если нет (потому что в нем будут перечислены машины), затем перейдите к столбцу M и напишите первый, второй: третье и так далее, большее количество столбца B, чтобы сделать только это, у меня нет проблем.

    Select Case Cells(w, 12)                             
    Case Is = ""                                                       
    Case Else                                               
    Cells(w, 13) = WorksheetFunction.Large(Columns(2), q)
    End Select
Next q
End Sub

То, что я пытался и не смог сделать, это сделать это автоматически, вместо того, чтобы делать следующее, что иногда работает.

    Select Case Cells(w, 12)                             
    Case Is = ""                                                       
    Case Else                                               
    Cells(w, 13) = WorksheetFunction.Large(Columns(2), q)
    End Select

    Select Case Cells(w, 13)   
    Case Is = ""    
    Case Else      
    Cells(w, 14) = WorksheetFunction.Large(Columns(2), w + M - 1) 
    End Select
    Next q
    End Sub

Может ли кто-нибудь помочь мне сделать эту часть автоматической, чтобы заполнить необходимые ячейки нужным значением q с любым количеством заданий и выбранных машин?

0