[算表] 辨認主索引複寫舊資料,不寫成新資料

看板Office作者 (水族缸裡的魚)時間14年前 (2011/08/07 23:31), 編輯推噓0(005)
留言5則, 1人參與, 7年前最新討論串1/1
軟體: Excel 版本: 2003 為了輸入方便, 將Excel設成兩個sheet:「輸入表單」、「主資料表」 由輸入表單查詢及輸入,將資料自動送進"主資料表"裡儲存。 撰寫程式碼如下: ============================================================================== sub 轉寫新記錄 () Dim formSheet as worksheet, datasheet as worksheet, _ targetrange as range, i as long Dim dataaddresslist(), newrecord as range, tmprecord as range set formsheet=sheets("輸入表單") set datasheet=sheets("主資料表") dataaddresslist=Array("C4","C6","F6","C8","F8",...) set targetrange=datasheet.range(""B"&rows.count).End(xlup).office(1) For i = 0 to ubound(dataaddresslist) targerange.offset(0,i).value=_ formsheet.range(dataaddresslist(i)).valus Next MsgBox"輸入完畢" End Sub ============================================================================== 並在輸入表單設置「叫出資料」及「輸入」鍵, 由輸入鍵帶入上述程式, 當輸入C4欄(為輸入身份證字號), 可從"主資料表"叫出其它欄資料。 若主資料表原本就無該身份證字號的資料, 則等使用者輸入完畢,即成為一筆新資料。這部份是沒問題的。 但若在主資料表,原本就有符合身份證字號的資料時,會自動帶出資料 但當修了其中非C4欄的資料,再次按儲存時, 又會整筆成為新資料。 請問各位版大, 如何設定C4欄為不重覆唯一值, 若有身份證字號輸入時遇重覆時,則詢問是否覆寫? 而非直接存成新一筆資料。 程式碼該如何做修改呢? 希望大家看的懂我的問題,謝謝 >"< ※ 編輯: bbsfish 來自: 114.27.121.200 (08/08 01:53)

04/03 18:58, 7年前 , 1F
一整個不了解,1.宣告變數targetrange而迴圈內打的是
04/03 18:58, 1F

04/03 18:58, 7年前 , 2F
targerange,2.range.office這是什麼,是range.offset,3.
04/03 18:58, 2F

04/03 18:58, 7年前 , 3F
range.valus這是什麼,是range.value,要提供也提供可以執
04/03 18:58, 3F

04/03 18:58, 7年前 , 4F
行測試的巨集好嗎
04/03 18:58, 4F

04/03 18:59, 7年前 , 5F
內文也問的很奇怪,輸入c4"欄",c4何時是欄了,這是儲存格
04/03 18:59, 5F
文章代碼(AID): #1EFg_9Op (Office)
文章代碼(AID): #1EFg_9Op (Office)