我有一个导出的 Outlook 联系人列表,其中包含大约 1800 封电子邮件。一个列 (Col A) 中的电子邮件字段仅填写了大约一半的联系人,而另一列 (Col B) 的“显示名称”包含其他联系人的电子邮件地址。但是,“显示名称”列还包含除电子邮件地址之外的其他数据,因此我想避免覆盖 Col A 中的现有电子邮件。
所以,我想找到一种方法,只用 Col B 的数据填充 Col A 中的空白字段。任何帮助将不胜感激!
在第三列中,输入此代码....
=IF(A1 <> "",A1,B1)
然后,将其应用于所有 1800 行。
您还可以使用嵌套在 if 语句中的 ISBLANK 函数并将两列连接到第三列中,如下所示: =CONCATENATE(IF(ISBLANK(A2),B2,A2),B2)
如果您尝试将 Col. B 中的所有内容放入空的 Col. A 中,则可以在宏中使用此 VBA 代码:
Sub macro1()
Dim theSheet As Worksheet
Dim theRange As Range
Dim emailLocation As Integer
Dim output As String
Set theSheet = Sheets("Sheet1")
Set theRange = Range("A1:A" & theSheet.UsedRange.Rows.Count)
For Each theCell In theRange
If theCell = "" Then
emailLocation = InStr(1, theCell.Offset(0, 1), "(")
output = Mid(theCell.Offset(0, 1), emailLocation)
theCell.Value = output
End If
Next
End Sub
无论工作表包含多少行数据,此宏都应该起作用