Я пытаюсь сформулировать функцию Index - Match с тремя условиями:
Условие 1: следует проверять только выделенные ячейки
Условие 2: Должен проверяться один и тот же человек в столбце Запланированное отключение
Условие 3: оно не должно повторяться снова и снова того же человека
У меня есть две таблицы. На листе 1 у меня есть таблица с позициями против сотрудника. На Листе 2 у меня есть таблица, к которой будет применяться индексное соответствие. Он также содержит выделенные ячейки и раскрывающееся меню.
Код должен выбрать имя из выпадающего списка и не перекрывать список
Я установил именованные диапазоны на обоих листах. Я попробовал следующий код:
Option Explicit
'use a constant to store the highlight color...
Const HIGHLIGHT_COLOR = 9894500 'RGB(100, 250, 150)'Is a cell highlighted?
EDIT: changed the function name to IsHighlighted
Function IsHighlighted(c As range)
IsHighlighted = (c.Interior.Color = HIGHLIGHT_COLOR)
End Function
Sub AssignBided()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim cel1 As range
Dim cel2 As range
Dim Bid As range
Dim line As range
Dim Offemp As range
Dim BidL8 As range
Dim BidL8E As range
Dim coresVal As String
Set ws1 = Worksheets("Sheet1")
Set ws2 = Worksheets("Sheet2")
Set Bid = ws2.range("Bid")
Set line = ws2.range("All_Pos_Hilight_Mon")
Set Offemp = ws2.range("Off_Mon") 'Scheduled Off Column
Set BidL8 = ws1.range("Bid_Pos") 'Bided Position
Set BidL8E = ws1.range("Bid_Emp") 'Bided Employee for a Position
For Each cel1 In BidL8E
For Each cel2 In line
If IsHighlighted(cel2) Then
If Application.WorksheetFunction.CountIf(Offemp, cel1.Value) > 0 Then
coresVal = Evaluate("Index(" & BidL8E.Address & "),MATCH(" & cel2.Validation & "," & BidL8.Address & ",0))")
Debug.Print coresVal
cel2.Offset(0, 2).Value = coresVal
End If
End If
Next cel2
Next cel1
End Sub
Этот код не выполняется. Я получаю ошибку:
Объект не поддерживает это свойство или метод
Это подчеркивает строку 33. Если кто-нибудь может помочь мне в этом, это будет очень цениться Спасибо.