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