台灣最大程式設計社群網站
線上人數
1157
 
會員總數:244258
討論主題:188578
歡迎您免費加入會員
討論區列表 >> office VBA / WinOS >> (求助)比對重複的後條件式刪除,並複製將刪除的行部分內容到保留的
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
(求助)比對重複的後條件式刪除,並複製將刪除的行部分內容到保留的
價值 : 150 QP  點閱數:192 回應數:13

樓主

ypyp1015
門外漢
0 2
76 9
發送站內信

大神們好,不好意思麻煩幫我試試看我的需求有沒有可簡化的方式,如vba,這邊先跟大神們道謝。

我目前的作業如下:
每日需系統匯出報表後整併紀錄
A B C D E F G H
A~E是系統匯出固定格式,FGH是記錄用的可能含有函數

A:不重複值 (數字)
C:字串 可能為(等待或結束或…),
我需要先比對A欄後如有重複的數值,再將重複的比對C欄是否為特定值,如假設兩筆一樣,就比對c欄,優先保留字串(結束),其餘刪掉。
E1:日期,需取新的如C欄比對值一樣都是結束,再比對日期,如日期較舊就刪除,留新的日期,如三個欄位都一樣就刪除排在上方的。
F1 G1 H1:新增註記加上分析用的資料。刪除掉的那行如果FGH有資料需貼到重複的且保留的那行FGH位置。

不知道這種作業可以用vba一次整理完成嗎?
或是真希望複製貼上時新資料能(自動)蓋過舊的A欄位相同資料的欄位,如果沒有重複的才貼到下方。
如有敘述不清請不吝告知,非常感謝閱讀完我的需求。

搜尋相關Tags的文章: [ 重複,條件,刪除 ] ,
本篇文章發表於2019-03-23 08:30
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

roar
檢舉此回應
檔案可以post讓大家一起想辦法。
本篇文章回覆於2019-04-03 13:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

ypyp1015
檢舉此回應
大大們不好意思,論壇的圖片空間一直傳不上去...
用GOOGLE的試試~還請大大們幫幫忙~下圖可能會有一點點跟上文不一樣,請以此為主,謝謝您





Excel檔案
本篇文章回覆於2019-04-13 11:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

ypyp1015
檢舉此回應
不好意思...圖片好像不行只能用檔案式的... 也可參閱Excel檔案第二個工作表

圖1

圖2
本篇文章回覆於2019-04-13 11:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

roar
檢舉此回應
你是說原始資料加上入資料後作成一張表,A,C column一樣的再判斷時間,保留較新的刪除舊的,但保留舊的註記嗎
如果如此,4275403174可以刪上面的嗎,即原始資料的,條件一樣時,刪舊的,不然LOGIC 不知要如何寫。
本篇文章回覆於2019-04-13 15:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

ypyp1015
檢舉此回應
大大對的,
第一點保留舊的註記(含函數)。
資料都一樣時其實如果能保留註記…刪哪一個都可以的。
感謝大大。
本篇文章回覆於2019-04-14 00:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

roar
檢舉此回應

https://drive.google.com/open?id=1p6Gg60rz8TT_tC3bahnQ1uqobLcH5Axv
本篇文章回覆於2019-04-14 20:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

roar
檢舉此回應
試試看上面的網址,作法為加入3個SHEETS,其一為原始資料,另一為匯入資料,最後為你要的資料,分2階段執行,第一COPY匯入資料至你要的資料,第二執行資料比對,留下你要的。
本篇文章回覆於2019-04-14 20:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

ypyp1015
檢舉此回應
感謝roar大大,大致上有達到需求,但...如果原始資料不一定會在匯入資料之內的話是否辦的到呢?

原目的是期望每日匯入資料做整理,資料來源由系統匯出可取得的資料會跟我原始資料有重複故需要做篩選(系統是以日期做匯出),因此日期過久我的原始資料就不在匯入資料內了,
且此原始資料數據累計下來可能會有上行...匯入資料可能幾百件。

感謝大大在抽空幫幫忙~謝謝,附上我實際資料檔案參考
Excel實際運作原始資料&匯入資料
本篇文章回覆於2019-04-15 02:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

roar
檢舉此回應
太多了,你依目前的資料表整理一下,2個sheet各約10筆包含各種情形,我再試試,不然我會眼花。
本篇文章回覆於2019-04-15 13:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

ypyp1015
檢舉此回應
roar大大不好意思,我已經重新上傳了~~
請您再看看一下excrl檔案,非常感謝您。
設計後的資料檔
本篇文章回覆於2019-04-17 01:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

roar
檢舉此回應
https://drive.google.com/open?id=1p6Gg60rz8TT_tC3bahnQ1uqobLcH5Axv
本篇文章回覆於2019-04-19 10:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
作者回應

ypyp1015
檢舉此回應
roar大大您好,非常感謝您,經測試幾乎是達到了我的想像~超厲害~

目前使用中發現到StatusReplace這段僅複製了比對的相關儲存格,而我期望是將整行從匯入資料工作表copy出來e.x. D~FF欄位都copy。
自己嘗試了更改...似乎無效,不知道是否有較簡易方式~~否需一筆一筆KEY入~

ThisWorkbook.Worksheets("執行VBA後的原始資料檔").Range("D" & relocate).Value = ThisWorkbook.Worksheets("匯入資料").Range("N" & i).Value
....
ThisWorkbook.Worksheets("執行VBA後的原始資料檔").Range("FF" & relocate).Value = ThisWorkbook.Worksheets("匯入資料").Range("AL" & i).Value

嘗試抄襲上段的代碼是無效的XD
ThisWorkbook.Worksheets("匯入資料").Range("D" & i & ":" & "FF" & i).Copy ThisWorkbook.Worksheets("執行VBA後的原始資料檔").Range("D" & j & ":" & "FF" & j)
本篇文章回覆於2019-04-22 02:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
回應

roar
檢舉此回應
可能是這樣,因測試的堶惘n像沒有D~M及AN~FF資料,所以沒有實測結果,如果有問題再加上資料我試試看。以下code放在--執行VBA後的原始資料檔工作表內

本篇文章回覆於2019-04-24 10:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.