2016-03-10 25 views
1

我正在使用VBA代碼刪除表單中從兩個來源複製數據的重複項。在複製數據之前,我使用其他VBA代碼格式化數據,以使格式與列中各個數據相同。但是,問題是,當我運行刪除重複代碼時,它不會刪除重複項。我通過手動運行該過程(Data-> Remove Duplicates)完成了測試。我一次測試過這一列,發現罪魁禍首是其中有日期/時間的列。因此,爲了確保數據是相同的,我在單元格中使用了序列日期/時間數字,並且仍然存在相同的問題。請參閱下面的圖片,瞭解我在手動過程中採用的步驟(如果我使用我的代碼運行該過程,結果相同)。刪除不在日期值上的重複項

This is the data before the RD process 這是RD過程

enter image description here 之前的數據這說明我的選擇

enter image description here 這就是結果。我無法弄清楚爲什麼最後一行沒有被刪除,因爲它們顯然是相同的。任何人都可以幫忙弄清楚這個嗎

+1

這與日期/時間是舍入數字格式的事實有關。有可能是小數點後面的數字。您可以嘗試創建另一列,使用'= Text(G2,「mm/dd/yyyy」)將日期更改爲文本,然後使用該列進行刪除。 –

+0

@scottcraner我確實把它擴展到了最多30個小數位,結果相同。我也用不同的變體格式化了日期列,所有都以這個結果結束。我會在幾分鐘內嘗試你的文字創意。 –

+0

@ScottCraner所以你的建議幾乎可行。我只是在寫日期部分的時候這樣做了,並且還在'= Text(G2,「mm/dd/yyyy hh:mm)中添加了時間來運行它(捕獲此項目的時間至關重要,因爲我們嘗試以驗證兩組數據,有人可能會輸入一個不正確的時間,我們需要捕獲這些數據)經過進一步的審查後,一些連續日期數字確實顯示了歸因於舍入的差異,但不是所有的數據例如,我有一組沒有刪除重複,並且都有連續時間爲:42430.334027777800000。 –

回答

2

當您從多個來源提取數據時,檢查數據來源非常重要。我收到的第二手數據已導入並保存爲Excel 97-2003 .xls。然後用戶做了另存爲Excel工作簿(.xlsx)。即使從.xls保存爲.xlsx,也會保留.xls工作簿的格式。我讓他們再次運行導出,但直接轉換爲.xlsx格式。這糾正了問題中概述的問題。無論你做多少格式化(至少我嘗試過的一切)都無所謂,它永遠不會匹配。

這個故事的寓意是驗證您接收的數據的初始格式版本。