Board logo

標題: [發問] 如何撰寫兩欄位資料同時重複的跳窗提醒?(已解決,GBKEE大, oobird大) [打印本頁]

作者: av8d    時間: 2011-10-3 08:46     標題: 如何撰寫兩欄位資料同時重複的跳窗提醒?(已解決,GBKEE大, oobird大)

本帖最後由 av8d 於 2011-10-18 08:51 編輯

當輸入資料時,D欄和I欄位同時重複時,跳窗提醒!
舉例說明如下:
A  B  C  D  E  F  G  H  I  J  K
1            聖誕節          台南
2
3
4            聖誕節          台南
5

D欄出現"聖誕節"且I欄也出現相同的"台南",此時條件成立,跳窗提醒。

-----------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

不知道怎麼在裡面下指令!?
作者: luhpro    時間: 2011-10-4 21:36

回復 1# av8d
若是想以儲存格部分內容來比對的話,
可能性範圍太大並且也不容易得出正確的比對結果,
例如 "中秋節活動" 就有底下這些可能的關鍵值需要作比對,
中秋節活動, 中秋節活, 中秋節, 中秋, 中
秋節活動, 秋節活, 秋節, 秋
節活動, 節活, 節
活動, 動

當然, 若是你的例子可以縮小範圍,(例如只需要比對固定的幾個如 活動與地點...等等關鍵字)
又或者能將 "端午節活動" 與 "中秋節活動" 這敘述文字串拆開放在兩個儲存格內,
變成 "端午節", "活動", "中秋節", "活動" 這樣就容易寫了.

暫時我能想到的就是利用 Dictionary 來實現,
方便的話是否可以先大致上縮小一下需要比對的範圍.
作者: av8d    時間: 2011-10-5 08:29

本帖最後由 av8d 於 2011-10-8 01:31 編輯

回復 2# luhpro


    A  B  C  D  E  F  G  H  I  J  K
1            聖誕節          台南
2
3
4            聖誕節          台南
5

D欄出現"聖誕節"且I欄也出現相同的"台南",此時條件成立,跳窗提醒。
作者: luhpro    時間: 2011-10-8 08:17

本帖最後由 luhpro 於 2011-10-8 08:31 編輯

回復 3# av8d
[attach]8195[/attach]

註 :
1. 若單純修改已有資料的儲存格內容仍可正常抓取及比對重複資料
2. 異動(含新增)某儲存格內容後會抓取全部與之相同資料的儲存格, 並將其底色設為黃色以方便辨識.
3. 上述設定的底色於再次抓取(即該兩欄有異動)時, 會先清除底色後再比對資料.
4. 不限定兩欄皆須有資料, 只要任一欄有資料就可以抓取及比對內容.
5. Debug 時, 若有 Reset 動作(或發生錯誤導致終止程式時)必須先執行 Workbook_Open 後才能有正常的動作.
作者: GBKEE    時間: 2011-10-8 17:09

本帖最後由 GBKEE 於 2011-10-8 17:14 編輯

回復 3# av8d
試試看
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.   Dim Rng As Range, I As Integer
  3.   With Target
  4.     .Select
  5.     If .Column = 4 Or .Column = 9 Then
  6.         If Cells(.Row, 4) <> "" And Cells(.Row, 9) <> "" Then
  7.             For I = 1 To Cells(Rows.Count, .Column).End(xlUp).Row
  8.                 If Cells(I, 4) = Cells(.Row, 4) And Cells(I, 9) = Cells(.Row, 9) And I <> .Row Then
  9.                     If Rng Is Nothing Then
  10.                         Set Rng = Union(Cells(I, 4), Cells(I, 9))
  11.                     Else
  12.                         Set Rng = Union(Rng, Cells(I, 4), Cells(I, 9))
  13.                     End If
  14.                 End If
  15.             Next
  16.             If Not Rng Is Nothing Then
  17.                 Set Rng = Union(Rng, Cells(.Row, 4), Cells(.Row, 9))
  18.                 Rng.Select
  19.                 MsgBox Cells(.Row, 4) & "  " & Cells(.Row, 9) & "  有重複 ?"
  20.             End If
  21.         End If
  22.     End If
  23.   End With
  24. End Sub
複製代碼

作者: av8d    時間: 2011-10-11 13:00

本帖最後由 av8d 於 2011-10-11 13:05 編輯

回復 4# luhpro

luhpro 大大辛苦了~

          rTar.AddComment ""
應用程式或物件上定義的錯誤

我自行修改看看~謝謝!
作者: av8d    時間: 2011-10-11 14:18

回復 5# GBKEE


    請問大大~是否可以當我按下TAB鍵的時候直接向右一格或按下Enter鍵直接向下一格~不用按兩次呢?再次感謝!
作者: GBKEE    時間: 2011-10-11 14:46

回復 7# av8d
按下TAB鍵的時候直接向右一格或按下Enter鍵直接向下一格~不用按兩次呢
可再詳說清楚嗎?
作者: luhpro    時間: 2011-10-11 22:56

回復 6# av8d
rTar.AddComment "" 時發生 "應用程式或物件上定義的錯誤"...
這應該是發生錯誤當時該 rTar 儲存格已經有註解了,
但這時卻要新增註解而造成的錯誤.

不過前面已經有 On Error GoTo ErrorHandler 了,
所以理論上應該會被 "錯誤處理程序" 順利處理掉才是,
不知你是怎麼樣的操作順序及輸入什麼資料而造成的錯誤.

你可試著單步執行看看程式有沒有跳到 ErrorHandler 區執行錯誤處理,
又執行到該區中時在 "即時運算" 視窗內打入 ?Err.Number 按 Enter 鍵,
看看 Err.Number 是否為 1004 又或者是其他的數字呢?
作者: av8d    時間: 2011-10-12 12:46

回復  av8d
按下TAB鍵的時候直接向右一格或按下Enter鍵直接向下一格~不用按兩次呢
可再詳說清楚嗎?
GBKEE 發表於 2011-10-11 14:46



    意思是說~一般我們在打資料打完後~輸入ENTER會向下一格~但是輸入您的判斷式後~變成要輸入兩次ENTER~是否有辦法變回只要輸入一次?謝謝!
作者: GBKEE    時間: 2011-10-12 14:08

回復 10# av8d
一般我們在打資料打完後~輸入ENTER會向下一格 是這樣就會引發 Worksheet_Change 程序的
為何你要按2次Eneter 傳上檔案看看
作者: av8d    時間: 2011-10-13 15:39

回復 11# GBKEE


    [attach]8230[/attach]
作者: GBKEE    時間: 2011-10-13 16:26

回復 12# av8d
如圖:  是第2次的Eneter 嗎?
如何撰寫兩欄位資料同時重複的跳窗提醒  這不就是你的解答阿


[attach]8231[/attach]
作者: av8d    時間: 2011-10-17 13:34

回復 13# GBKEE

G大您好~
問題點在~在一般儲存格輸入內容後~直接點Enter會向下一格~(請開啟新的excel即可)
我的附件excel則必須點兩次Enter才會向下一格~

※以上是當沒有觸發重複時所發生的問題
作者: GBKEE    時間: 2011-10-17 14:24

回復 14# av8d
修改如圖:

[attach]8256[/attach]
作者: oobird    時間: 2011-10-17 16:48

這個select是多餘的,造成要兩次enter. 可以刪掉。[attach]8260[/attach]
作者: av8d    時間: 2011-10-17 16:50

回復  av8d
修改如圖:
GBKEE 發表於 2011-10-17 14:24



    G大您還是誤解我的意思了~

請開啟一個新的EXCLE~然後在A1儲存格輸入123然後按ENTER,儲存格會直接到A2,以上沒問題。

然後下載我的附件,然後在A1儲存格輸入123然後按ENTER,你會明顯發現儲存格依然停留在A1,並沒有直接到A2,以上是問題點。

再次感謝!!
作者: GBKEE    時間: 2011-10-17 17:21

回復 17# av8d
是阿:
16摟 oobird超版 已解答




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)