我正在开发一个Excel启动跟踪器表,它从外部数据库中获取大部分信息。我有代码比较两张表,将数据库提取中缺少的信息添加到我的启动跟踪器表。
如果两个工作表之间有三个条件匹配,则此代码进行比较,如果是,则替换该行(从E列到AQ列),否则它会在启动跟踪表的末尾添加该行。
如何向更新的单元格添加条件格式?
这是我到目前为止的代码!
Option Explicit
Public Const FM As String = "Launch Tracker"
Public Const lidebFM As Byte = 3
Public Const FL As String = "LAT - Master Data"
Public Const lidebFL As Byte = 3
Public Const co1 As Byte = 8 ' colonne H
Public Const co2 As Byte = 15 ' colonne O
Public Const co3 As Byte = 17 ' colonne Q
Public Sub Update()
Dim lifinFL As Long, liFL As Long
Dim lifinFM As Long, liFM As Long
Dim obj As Object
Dim V1 As String, V2 As String, V3 As String
With Sheets(FL)
' dernière ligne feuille FL
lifinFL = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
' boucle sur les lignes de FL
For liFL = lidebFL To lifinFL
' dernière ligne de FM
lifinFM = Sheets(FM).Cells.Find("*", , , , xlByRows, xlPrevious).Row
' comparaison des Item ID
V1 = .Cells(liFL, co1).Value
' recherche de V1 dans FM colonne co1
Set obj = Sheets(FM).Columns(co1).Find(V1, , , xlWhole)
' si pas trouve lifm = 1° ligne dispo dans FM pour copie
If obj Is Nothing Then
liFM = lifinFM + 1
' sinon V1 est trouve à la ligne liFM
Else
liFM = obj.Row
' compraison de MARKET et SAP
V2 = .Cells(liFL, co2).Value
V3 = .Cells(liFL, co3).Value
' si identiques on garde liFM = liobj pour ecrasement
If V2 = Sheets(FM).Cells(liFM, co2).Value And V3 = Sheets(FM).Cells(liFM, co3).Value Then
' rien
Else
' si non identiques lifm = 1° ligne dispo dans FM pour copie
liFM = lifinFM + 1
End If
End If
' copie de la ligne liFL dans FM à la ligne liFM
'.Rows(liFL).Copy Sheets(FM).Cells(liFM, 1)
'prendre juste les cellules à la place de la ligne
.Range(.Cells(liFL, 5), .Cells(liFL, 43)).Copy Sheets(FM).Cells(liFM, 5)
Next liFL
End With
End Sub
答案 0 :(得分:1)
如果用不同颜色绘制更新的线条适合你,你可以使用像这样简单的东西(使线条变黄):
index
当然,在启动更新数据的循环之前,您应该将整个工作表绘制成一种颜色(白色或任何其他颜色)。