2017-01-26 23 views
0

我已经分配了简单的任务(起初我认为是这样),监视输入到excel中,如果有数字(如0000068145),我需要用它的颜色突出显示它。所以我创建了两张Sheet1和Database。在数据库我把我的数据是这样的:[Excel] [VBA]从另一张表中查找数值并复制它的BG

Database Sheet here

所以我用这个代码,并将其称为每当我改变的东西:

Private Sub Worksheet_Change(ByVal Target As Range) 


End Sub 

我想过使用VLOOKUP,但它只会检索据我所知,价值。

那么你会如何意识到这种操作?

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

对不起,我的英语

+1

您可以将'ThemeColor'和'TintAndShade'属性值存储为相应的数字,然后查找这些数据并使用这些值对单元格着色。如果你不知道属性值,Record Macro就是你的朋友。 –

+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)中为某个单元格添加了一些值,则会从此数据库工作表复制颜色。

+0

伟大的脚本,非常感谢你... –

相关问题