→ soyoso: 1.要有學號唯一值,如果有就不用以下方式10/26 10:05
→ soyoso: 方式有a)資料工具的移除重覆range.removeduplicates10/26 10:05
→ soyoso: b)進階篩選,range.advancedfilter10/26 10:05
→ soyoso: c)dictionary 10/26 10:05
→ soyoso: d)迴圈,判斷,工作表函數countif(是否為0),10/26 10:05
→ soyoso: match(是否為錯誤值)10/26 10:05
→ soyoso: 2.有唯一值後填入第一筆資料和找是否有重覆,迴圈於範圍內10/26 10:05
→ soyoso: ,或迴圈於range.find,找到以range.copy或range= range.10/26 10:05
→ soyoso: value複製貼上或填入;要確認每筆學號最右側有值儲存格欄10/26 10:05
→ soyoso: 號的話,range.end、range.find或工作表函數counta(有連續10/26 10:05
→ soyoso: 資料時),欄號的話range.column10/26 10:05
→ jerry7504: 目前唯一值有了可是不知道怎麼去比對2者相同學號後面10/26 16:15
→ jerry7504: 的所有值 貼上部分如何依序貼呢?10/26 16:15
→ soyoso: 巢狀迴圈判斷或是迴圈range.find,就看是否有排序,有的話10/26 16:36
→ soyoso: range.find或是工作表函數match取第一筆出現的列號,迴圈10/26 16:36
→ soyoso: 工作表函數countif取得的筆數,位序貼上就要看每筆學號最10/26 16:36
→ soyoso: 右側有資料的儲存格或欄號,方式上述回文range.end之後都10/26 16:36
→ soyoso: 是再說明這方面,有這個資料range.offset或是欄號+110/26 16:36
→ jerry7504: 痾小弟不才搞了5小時連後面範圍都選不出來...10/26 18:09
→ jerry7504: S大能提供函數或VBA程式嗎xD10/26 19:02
→ soyoso: 提供回文所述選不出來的檔案或寫法,再來看看問題是什麼?10/26 19:55
→ jerry7504: 我先重新來不然都亂了s大幫我大概分析一下概念有沒有10/26 20:56
→ jerry7504: 錯10/26 20:56
→ jerry7504: 1.篩選唯一學號2.將表二唯一學號跟表ㄧ原始資料比對10/26 20:56
→ jerry7504: 如果相等將表ㄧ對應學號右邊值抓出10/26 20:57
→ jerry7504: 2、依照學號依序貼上後面數值 10/26 20:58
→ soyoso: 如原po回文所述10/26 21:16
→ jerry7504: 目前程式階段跟錯誤10/26 21:46
→ soyoso: 以巨集來看有可能出現這個錯誤的原因是sheet2要改為類似上10/26 21:53
→ soyoso: 方工作表1的寫法,如工作表2.range("a:a")之類的10/26 21:54
→ soyoso: 如要match尋找完全符合的話,第三個引數不是1,而是010/26 21:55
→ soyoso: 另外也不太了解變數E是什麼?1.不確定這個變數的型態是什10/26 21:59
→ soyoso: 麼?range嗎?10/26 21:59
→ soyoso: 2.如果是的話,要set該變數10/26 22:00
→ jerry7504: 有改了好像還是一樣還是要加宣告10/26 22:00
→ jerry7504: 那這個概念寫成這樣有錯嗎?10/26 22:02
→ jerry7504: 目前改完可以執行但是沒有值10/26 22:05
→ soyoso: 可以執行,沒錯誤產生,但沒有值帶入方面還是要從檔案來看10/26 22:12
→ soyoso: 因為測試連結的巨集,工作表1有連續資料(二欄以上)是可以10/26 22:20
→ soyoso: 將工件表2的b欄資料帶入的10/26 22:20
→ jerry7504: 目前變這樣...10/26 22:21
→ jerry7504: 我的檔案是這樣10/26 22:25
→ soyoso: 連結不知道哪個是工作表1、工作表210/26 22:29
→ jerry7504: 疑那要如何修改10/26 22:35
→ jerry7504: S大那個怎麼用出來的10/26 22:35
→ soyoso: 修改什麼?因為不確定22:25和22:26所上傳的圖檔是工作表110/26 22:37
→ soyoso: 或2,沒看到下方工作表名稱10/26 22:37
→ soyoso: 那個怎麼用出來的?不了解,哪個?我的連結圖檔?10/26 22:39
→ soyoso: 如果是的話,是以螢幕截圖10/26 22:39
→ soyoso: 從原po回文的圖檔來看應是無機密性吧,若沒有的話看要不要10/26 22:41
→ soyoso: 就上傳雲端空間,提供連結(縮網頁),這樣不限我版上先進要10/26 22:42
→ soyoso: 協助原po也會較方便10/26 22:42
→ jerry7504: 1AdtQn-pp_w_Qn/view10/26 22:59
→ jerry7504: 感謝大大10/26 22:59
→ jerry7504: 忘記縮網再麻煩了10/26 23:05
→ jerry7504: 這個是結果檔我vba還沒寫10/26 23:22
→ jerry7504: 這個是我寫到剛剛那個問題的10/26 23:24
→ soyoso: 是工作表1的資料填到工作表2的話,判斷後面的寫法就相反了10/27 06:53
→ soyoso: 應是工作表2.range=工作表1.range,取得最右側有值的儲存10/27 06:54
→ soyoso: 格也會是寫於工作表2.range的部分10/27 06:55
→ soyoso: 如只有a欄一欄,不以xltoright,而是xltoleft的方式 10/27 06:56
→ jerry7504: 我改成left可是它沒辦法全部依照學號往下 是讀到學號10/27 15:12
→ jerry7504: 的最後第一個值耶10/27 15:12
→ soyoso: 這方面還是要看巨集如何寫才比較清楚10/27 15:46
→ jerry7504: 有抓到第一個值但是它只顯示最後一個出來10/27 15:50
→ jerry7504: 目前程式一直跑的確會依序抓到最後但是列不出來10/27 15:57
→ soyoso: 這樣的截圖,沒看到工作表1或2是那個資料,要的話請附上工10/28 10:48
→ soyoso: 作表1、工作表2名稱和巨集的截圖,不然就以檔案來看才比較10/28 10:50
→ soyoso: 清楚10/28 10:50
→ soyoso: 就像我10/27 06:54所回文取得最右側有值的儲存格也會是寫10/28 10:52
→ soyoso: 在工作表2.range的部分,但巨集上還是寫在工作表1(變數r)10/28 10:53
→ soyoso: 的部分10/28 10:53
→ soyoso: 我就不分工作表了,要有k欄(唯一值)的資料,提供的是range10/28 11:10
→ soyoso: .copy方式,如不用帶格式的話,以回文range=range.value方10/28 11:10
→ soyoso: 式。連結內L欄後就是從c欄起的資料了10/28 11:12
→ jerry7504: 感謝s大 我27號已經有試出來了 不過我是用do untilloop10/28 19:12
→ jerry7504: 不知道哪個效率比較高呢?10/28 19:13
→ jerry7504: 我之後會再試試看真的很感謝s大~ 10/28 19:14
→ jerry7504: 這是我27號寫出來的結果是在工作表2裡 跟s大的結果一10/28 19:21
→ jerry7504: 樣10/28 19:21
→ jerry7504: 不過在我原始data 處理的速度會有點慢 原始有1萬多筆10/28 19:22
→ jerry7504: 會有一小段無法回應的時間10/28 19:22
※ 編輯: jerry7504 (27.52.229.55 臺灣), 10/29/2019 23:20:42