Re: [算表] Excel設定巨集遇到資料驗證錯誤自動停止

作者: windknife18 (windknife18)   2022-06-23 12:00:28
資料驗證在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
: 先謝謝大家了!!

Links booklink

Contact Us: admin [ a t ] ucptt.com