我有以下名为数据的工作表:
在同一工作簿中,我有另一个名为员工数据库的工作表。
在Excel中,如果“员工电子邮件地址”,如何从数据工作表中为“员工电子邮件地址”和相应的“公司”和“公司URL”单元格着色。 “不在员工数据库中?
换句话说,我正在努力使员工数据库工作表看起来像这样:
我刚刚给出了一个例子,实际上我有超过10,000个单元格的数据来做到这一点。我手动开始这样做,意识到它将永远带我。
我想知道是否有可以在Excel中执行此操作的宏?
非常感谢帮助!我在上面可以下载截图的示例工作簿: http://www.mediafire.com/?dttztp66dvjkzn8
答案 0 :(得分:1)
这是你在尝试什么?这将创建一个带有输出的新工作表“Desired Result”。将其粘贴到模块中。
Option Explicit
Sub Sample()
Dim wsData As Worksheet, wsDB As Worksheet, wsO As Worksheet
Dim lRow As Long, i As Long
Dim clrRng As Range
Set wsData = Sheets("Data")
Set wsDB = Sheets("Employee Database")
Set wsO = Sheets.Add
On Error Resume Next
Application.DisplayAlerts = False
Sheets("Desired Result").Delete
Application.DisplayAlerts = True
On Error GoTo 0
With wsO
.Name = "Desired Result"
wsData.Cells.Copy .Cells
lRow = .Range("B" & .Rows.Count).End(xlUp).Row
For i = 2 To lRow
If .Range("A" & i).Value = "" Then .Range("A" & i).Value = .Range("A" & i - 1).Value
Next i
For i = 1 To lRow
If Application.WorksheetFunction.CountIf(wsDB.Columns(3), .Range("A" & i).Value) = 0 Then
If clrRng Is Nothing Then
Set clrRng = .Rows(i)
Else
Set clrRng = Union(clrRng, .Rows(i))
End If
End If
Next i
If Not clrRng Is Nothing Then clrRng.Interior.ColorIndex = 3
For i = lRow To 2 Step -1
If .Range("A" & i).Value = .Range("A" & i - 1).Value Then .Range("A" & i).ClearContents
Next i
End With
End Sub
答案 1 :(得分:1)
您可以在没有VBA的情况下执行此操作,但需要对Data
表单上的数据进行轻微更改。
我不建议在Excel中使用“数据存储表”或“小计”样式的数据存储,只需在一列中输入主键,然后在其旁边填写相关数据直到下一个主键。
与合并的单元格一样,只有在您想要重新整理数据时才会出现问题。
这就是我的所作所为:
将列A2
下的单元格A
突出显示到 B 列中数据的末尾。因此,如果您在单元格B2:B100
中有公司名称,但只有来自A2:A98
的电子邮件,则应突出显示A2:A100
。这是因为我们在每行可用数据中填写电子邮件地址。
转到修改»查找&选择»转到特殊,选择Blanks
,然后点击OK
。
现在选择了空白,键入=
↑(向上箭头),然后按 Ctrl + Enter 。 A列中的空白单元格将填入缺少的电子邮件地址。突出显示A列,复制和粘贴值。
在Employee Database
表格上,在“参考”框中使用以下公式创建名为“电子邮件”的命名范围:
=OFFSET('Employee Database'!$C$1,1,0,COUNTA('Employee Database'!$C:$C)-1,1)
在Data
表格中,突出显示A2:C whatever
(例如:A2:C20000
),然后转到主页»样式»< strong>条件格式并使用以下公式:
=ISNA(MATCH($A2,Emails,0))
选择所需的配色方案,然后点击OK
。以下是我在计算机上查看一些示例数据的方式:
有一些小的限制:
Data
表单上留空A列。Employee Database
表格中的数据行之间有空白行。这是由于动态范围的工作方式。这种方法的好处是,IMO,是巨大的。
Data
表格上的格式会立即更新。