将表格中的值匹配到下拉范围

时间:2018-12-11 19:31:34

标签: excel vba excel-vba

我已经尝试了一段时间,但无法弄清楚此问题的for代码。 在sheet1中有一张表格,该表格有两列,一列有职位,下一列有可以从事这些职位的人。 在sheet2中,我有所有职位的列表,当您选择一个SKU时,将突出显示应该配备人员的职位,除此以外的两列是员工的下拉列表。 该工作表还具有一个范围,该范围显示当天不工作的员工。 试图实现@BruceWayne答案的代码是:

  Option Explicit
'use a constant to store the highlight color...
Const HIGHLIGHT_COLOR = 9894500 'RGB(100, 250, 150)

Sub AssignBided()

Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim cel1 As range
Dim cel2 As range
Dim line8 As range
Dim Offemp As range
Dim BidL8 As range
Dim BidL8E As range
Dim coresVal As String

Set ws1 = Worksheets("OT_Table")
Set ws2 = Worksheets("Monday")
Set line8 = ws2.range("Line8_Hilight_Mon")
Set Offemp = ws2.range("Off_Mon")
Set BidL8 = ws1.range("BidedL8")
Set BidL8E = ws1.range("BidedL8_E")

For Each cel2 In BidL8E
    For Each cel1 In line8
        If IsHighlighted(cel1) Then
            If Application.WorksheetFunction.CountIf(Offemp, cel2.Value) > 0 Then
                coresVal = Evaluate("Index(" & BidL8E.Address & "),MATCH(" & cel1.Validation & "," & BidL8.Address & ",0))")
                Debug.Print coresVal
                cel1.Offset(0, 2).Value = coresVal
            End If
        End If
    Next cel1
Next cel2
End Sub

'Is a cell highlighted? EDIT: changed the function name to IsHighlighted
Function IsHighlighted(c As range)
    IsHighlighted = (c.Interior.Color = HIGHLIGHT_COLOR)
End Function

此代码给我这个错误:对象不支持此属性或方法。它突出显示evaluate行。我是否以某种错误的方式使用它?

1 个答案:

答案 0 :(得分:1)

从评论中,我认为这就是您想要做的。
(我重命名了一些变量,以使它们更易于理解。此外,根据需要调整命名范围。它们可能不是全部都在“ OT_Table”表中,我以为是。这还不清楚。)

{{ hostvars["machine1"].var }}