2012-10-01 54 views
1

我有一個導出的Outlook聯繫人列表,其中充滿了大約1800封電子郵件。一列(Col A)中的電子郵件字段僅填充了大約一半的聯繫人,另一列(列B)用於「顯示名稱」,其中包含其他聯繫人的電子郵件地址。但是,「顯示名稱」列中除了包含電子郵件地址外,還包含其他數據,所以我想避免覆蓋現有電子郵件地址A.將填充的列複製到同一行另一列中的空字段中

所以,我想找到一種方法來填充只有Col A的數據來自Col B的空場。任何幫助將不勝感激!

+0

是y你試圖把所有在Col.B細胞中的東西都放入空的Col.A細胞中?或者將Col.B單元格中的特定數據放入空的Col.A單元格中? –

+0

理想情況下,我想從Col. B中取出電子郵件地址。目前Col. B單元格看起來像「名字姓氏([email protected])」。 – user1712390

+0

我編輯了我的foreach循環,只從B列中的字符串中獲取電子郵件地址。它專門搜索「(」以知道從哪裏開始 –

回答

1

如果你試圖把一切從上校B插入空柱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 

這個宏應該工作無論多麼數據片的許多行包含

+0

感謝Mike!這是錢! – user1712390

+0

@ user1712390 welcome!don' t忘記選擇一個問題的答案,並很高興我可以幫助:) –

2

在第三列,把這段代碼....

=IF(A1 <> "",A1,B1) 

然後,它適用於所有1800行。

+0

+ +1爲一個好的簡潔和易於使用的解決方案:) –

+0

Excel似乎不符合雙引號,併產生錯誤,當我嘗試使用公式。 ( – user1712390

+0

@ user1712390,'= IF(A1 <>「」,A1,B1)'是你應該使用的,分號不正確 –

2

你也可以使用嵌套的if語句中的ISBLANK功能,並在第三列像這樣串聯的兩列:= CONCATENATE(IF(ISBLANK(A2),B2,A2),B2)

相關問題