Ранее я задавал вопрос о том, как изменить шрифт соответствующих элементов из массива на Листе 2.Теперь я хочу пойти немного дальше и вернуть совпадающие количества в Sheet1, которые соответствуют пунктам с красными шрифтами.Я действительно хочу использовать vba, чтобы стать более знакомым и выучить.
Вот мой код ниже:
Dim i, j, x As Integer
Dim box1, box2, box3, box4, box5, box6, box7, box8, box9 As String
Dim c As Range 'Define two ranges so that we can loop through both sheets to check the boxes
Dim d As Range
Sheets(1).Range("B11:B30, F11:F30").Font.ColorIndex = 0 'Remove the cell styles to apply new ones
box1 = Sheets(1).Cells.Range("C2")
box2 = Sheets(1).Cells.Range("C4")
box3 = Sheets(1).Cells.Range("C6")
box4 = Sheets(1).Cells.Range("F2")
box5 = Sheets(1).Cells.Range("F4")
box6 = Sheets(1).Cells.Range("F6")
box7 = Sheets(1).Cells.Range("I2")
box8 = Sheets(1).Cells.Range("I4")
box9 = Sheets(1).Cells.Range("I6")
Qty = Sheets(1).Cells.Range("D10")
'This refers to the checkbox
For i = 1 To 10 'Loop to find the checked box in sheet2
'box 1 items and quantites
If Sheets(2).Cells(1, i) = box1 And Qty Then 'Check for checked box
For Each c In Sheets(2).Range(Sheets(2).Cells(2, i), Sheets(2).Cells(6, i))
If Sheets(2).Range(Sheets(2).Cells(2, i), Sheets(2).Cells(6, i)) = Sheets(1).Range("D11:D30").Value And Sheets(2).Range(Sheets(2).Cells(2, i), Sheets(2).Cells(6, i)) <> "" Then
x = x
Else
x = x + 1
End If
For Each d In Sheets(1).Range("B11:B30, F11:F30")
If c = d Then
Sheets(1).Cells(d.Row, d.Column).Font.ColorIndex = 3 'changes matching item to red font
End If
Next d
Next c
Обратите внимание, что я пока работаю над возвратом количеств для коробки 1,Вот почему я не опубликовал полный код.Пожалуйста, смотрите картинку для лучшего понимания моих списков, из которых я получаю: Списки ящиков