【问题标题】:[Excel][VBA] Look up value from another sheet and copy it's BG[Excel][VBA] 从另一张表中查找值并复制它的 BG
【发布时间】:2017-06-11 19:14:16
【问题描述】:

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

所以我使用了这段代码,每当我更改某些内容时它都会调用它:

Private Sub Worksheet_Change(ByVal Target As Range)


End Sub

我考虑过使用 Vlookup,但据我所知,它只会检索值。

那么你是如何实现这种操作的呢?

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

对不起我的英语

【问题讨论】:

  • 您可以将ThemeColorTintAndShade 属性值与其对应的数字存储起来,然后只需查找此数据并使用这些值为单元格着色。如果您不知道属性值,Record Macro 是您的朋友。
  • 调节格式怎么样?我在这里看到了它的可能性。也许这样做会更好?嗯……但是为每个数字设置条件是痛苦的……

标签: excel vba


【解决方案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 列中,则颜色将从该数据库表中复制。

【讨论】:

    猜你喜欢
    • 2017-07-27
    • 1970-01-01
    • 2018-06-12
    • 2019-04-21
    • 1970-01-01
    • 2015-02-09
    • 2015-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多