我有两个日历,一个日历10辆,第二日历15个。我想为汽车日历的每一天分配司机。
Here is image of cars calendar
And here is imade of drivers calendar
这是我的代码,该代码使我的目标无法实现,但是当然不起作用,因为我对vba并不熟悉,因此我可以弄清楚如何按列比较两个数组的值,但是不能从驱动程序名称中分配值汽车日历专栏
Private Sub CommandButton1_Click()
Dim cars() As Variant
Dim drivers() As Variant
cars = Range("A1:F10")
drivers = Range("M1:R15")
For Each carDay In cars
For Eeach driverDay In drivers
Dim driver As Long
Set driver = driverDay(1)
If carDay(2) = driverDay(2) Then
carDay.Value = driver
driverDay.Value = "used"
End If
Next driverDay
Next carDay
End Sub
Option Explicit
Sub CommandButton1_Click()
Dim coA As New Collection, coI As New Collection, coY As New Collection
Dim n As Integer, d As Integer, sDriver As String, sCar As String
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
For d = 1 To 5
For n = 1 To 15
sDriver = ws.Cells(n, "M")
Select Case ws.Cells(n, "M").Offset(0, d)
Case "A": coA.Add sDriver
Case "I": coI.Add sDriver
Case "Y": coY.Add sDriver
End Select
Next
For n = 1 To 10
sCar = ws.Cells(n, "A")
Select Case ws.Cells(n, "A").Offset(0, d)
Case "A": sDriver = coA(1): coA.Remove 1
Case "I": sDriver = coI(1): coI.Remove 1
Case "Y": sDriver = coY(1): coY.Remove 1
End Select
ws.Cells(20 + n, "A").Offset(0, d) = sCar & ":" & sDriver
Next
Set coA = Nothing
Set coI = Nothing
Set coY = Nothing
Next
End Sub