標題:
[發問]
關於資料驗證問題
[打印本頁]
作者:
j88141
時間:
2014-8-27 22:35
標題:
關於資料驗證問題
輸入錯誤資料時未出現驗證訊息
查了office的說明 說
訊息只會在資料
直接鍵入
儲存格時出現。
訊息當使用者在儲存格中以複製或填入方式輸入資料時不會出現
想請問如果用VBA的話,是否可以在複製或填入方式時
出現驗證訊息
作者:
GBKEE
時間:
2014-8-28 05:52
回復
1#
j88141
試試看
Option Explicit
Sub Ex()
Selection.Copy
With Range("D1")
.PasteSpecial xlPasteValues '僅複製值
.Select
Application.SendKeys "{F2}~", True '按鍵 F2:插入 ,~ :Enter
End With
End Sub
複製代碼
作者:
j88141
時間:
2014-8-28 15:48
回復
2#
GBKEE
我自己做了一個小例子,
可是不知道如何把GBKEE版主的程式碼運用上去
[attach]19039[/attach]
謝謝GBKEE版主幫忙解惑
作者:
GBKEE
時間:
2014-8-28 20:15
回復
3#
j88141
不知是2007檔案在2003環境中轉檔,沒有見資料驗證的儲存格
修改一下你的程式
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng(1 To 2) As Range, E As Range
Set Rng(1) = [A1:C2] '擴充到C2試試 '可修改為大課表的E列 到 P列
Application.EnableEvents = False
If Not Intersect(Target, Rng(1)) Is Nothing Then 'Target, Rng(1) 儲存格範圍有交集到
For Each E In Rng(1).Rows(1).Cells '姓名列
Set Rng(2) = Range("C11:C14").Find(E, LookAt:=xlWhole, MatchCase:=True)
With E.Offset(1)
If Not Rng(2) Is Nothing Then .Value = Rng(2).Offset(0, 1).Value Else .Value = ""
End With
Next
End If
Application.EnableEvents = True
End Sub
複製代碼
作者:
j88141
時間:
2014-8-28 21:54
回復
4#
GBKEE
回復 GBKEE大
你的程式碼改完後,我發現A2:C2 會變成無法單獨輸入(想要都可以輸入)
等於是被A1:C1綁架(要A1有輸入,A2才有)
這次應該有資料驗證的儲存格了
[attach]19041[/attach]
[attach]19042[/attach]
作者:
Hsieh
時間:
2014-8-28 22:19
本帖最後由 Hsieh 於 2014-8-28 22:21 編輯
回復
5#
j88141
驗證公式改一下
=COUNTIF($G$2:$H$5,A$2)>0
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A1:C1]) Is Nothing Then Exit Sub '輸入人名的範圍設定在A1:C1
If Target.Count > 1 Then MsgBox "只能改變一格": Exit Sub
Set Rng = Range("C:C").Find(Target, LookAt:=xlWhole, MatchCase:=True)
With Target.Offset(1)
If Not Rng Is Nothing Then .Value = Rng.Offset(0, 1).Value: Application.SendKeys "{F2}~"
DoEvents
If .Validation.Value = False Then .Value = ""
End With
End Sub
複製代碼
[attach]19044[/attach]
作者:
j88141
時間:
2014-9-1 21:17
謝謝各位解答
成功了
~
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)