[Excel] [VBA]从另一张纸上查找值并复制它的BG

时间:2017-01-26 10:25:00

标签: excel vba

我被分配了简单的任务(起初我是这么认为的),监视输入到excel中,如果有数字(如0000068145),我需要用它的颜色突出显示它。所以我创建了两张Sheet1和Database。在数据库中我保留我的数据:

Database Sheet here

所以我使用了这段代码,每当我改变一些东西时它就会调用:

Private Sub Worksheet_Change(ByVal Target As Range)


End Sub

我想过使用Vlookup,但就我所知,它只能检索到值。

那你怎么会意识到这种行动?

我不能使用Vlookup,我真的需要“数据库”与主表分开。

抱歉我的英文

1 个答案:

答案 0 :(得分:1)

我认为您使用Worksheet_Change的方法是正确的。

将以下内容放入Sheet1代码:

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim oCell As Range, oDBCell As Range
 Dim dbWS As Worksheet
 Dim lColor As Long
 Set dbWS = ThisWorkbook.Worksheets("Database")
 For Each oCell In Target
  Set oDBCell = dbWS.Range("A:A").Find(what:=oCell.Value, LookIn:=xlValues, lookat:=xlWhole)
  If Not oDBCell Is Nothing Then
   lColor = oDBCell.Interior.Color
   oCell.Interior.Color = lColor
  End If
 Next
End Sub

您的"数据库"工作表必须命名为Database

现在,如果您将一些值放入Sheet1中也位于数据库工作表的A列中的单元格中,则会从此数据库工作表中复制颜色。