2017-01-26 61 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

偉大的腳本,非常感謝你... –

相關問題