看板 Office 關於我們 聯絡資訊
資料驗證在VBA中複製資料並不會被觸發,所以不會擋住重複值, 很久沒寫VBA了,練一下功,看看合不合用囉 Sub Macro1() Dim LastRow As Long Set cell = Sheets(1).Range("A:A").Find(Sheets(2).Range("D4"), _ LookIn:=xlValues, LookAt:=xlWhole) If Not cell Is Nothing Then MsgBox ("輸入過了!!") Else LastRow = Sheets(1).Range("A1").End(xlDown).Row + 1 Sheets(2).Range("D4").Cut Sheets(1).Cells(LastRow, 1) End If End Sub ※ 引述《occlumency3 (鎖心術)》之銘言: : 軟體: Microsoft Office Excel : 版本: 365 : 大家好~ : 如下圖 我在A欄使用資料驗證避免輸入重複值 : https://imgur.com/a/EvDeStv : 因此若我在A7輸入已存在的"A" 會跳出錯誤視窗 不給我輸入 : https://imgur.com/a/FDPmuBY : 另一方面 : 我寫了個巨集 目的是讓使用者輸入新資料到A欄 : 如下圖 使用者在D4輸入"F" 並按下Input Item的按鈕後 "F"會被貼到前一張sheet的A欄 : https://imgur.com/a/7pGejVL : https://imgur.com/a/tTlNcOH : 然而 若我在巨集sheet的D4輸入前一張sheet A欄的重複值 巨集仍會成功執行 : 不會偵測資料重複 進而停止巨集 : https://imgur.com/a/MeIL3hG : https://imgur.com/a/cs1CVQP : 除非我去編輯A8儲存格 資料驗證的功能才會作用 : https://imgur.com/a/ooWGJp3 : 因此想詢問的是 有沒有辦法在巨集中加入已存在的資料驗證規則呢? 或是別的方式中斷? : VBA程式碼如下 : Sub Macro1() : ' : ' Macro1 Macro : ' : ' : Range("D4").Select : Selection.Copy : Sheets("Sheet1").Select : Selection.End(xlDown).Select : ActiveCell.Offset(1, 0).Range("A1").Select : Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, : SkipBlanks _ : :=False, Transpose:=False : ActiveCell.Offset(-6, 0).Range("A1").Select : Sheets("Sheet2").Select : Range("D4").Select : Application.CutCopyMode = False : Selection.ClearContents : End Sub : 先謝謝大家了!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.131.84.79 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1655956830.A.E1D.html