Board logo

標題: [發問] 如何做 資料/驗證 ? [打印本頁]

作者: aweihsu    時間: 2016-3-7 12:32     標題: 請問有什麼辦法可以判斷儲存格一定要輸入值

請問有什麼辦法可以判斷,當我 A2 輸入姓名時,A5, A7 (舉例) 儲存格一定要輸入值,不能留下空白。
查了好久,我能做到的就是判斷,但是沒辦法強制 A5, A7一定要輸入值,不然就沒辦法往下輸入
有知道的人,可以分享嗎?,謝.
作者: rouber590324    時間: 2016-3-7 14:45

使用vba如下

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
X = Sheet1.Range("A2")
Y = Sheet1.Range("A5")
Z = Sheet1.Range("A7")
If Not (X = "" Or X = " ") And (Y = "" Or Y = " ") Then
   MsgBox "A2有內容-A5一定要輸入內容:否則無法存檔"
End If
If Not (X = "" Or X = " ") And (Z = "" Or Z = " ") Then
   MsgBox "A2有內容-A7一定要輸入內容:否則無法存檔"
End If
End Sub
作者: yen956    時間: 2016-3-8 09:57

試試看:
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. Dim Rng As Range, E

  3. '設定[A2],[A4:A5],[A7](舉例,可增減)一定要輸入值
  4. Set Rng = Union([A2], [A4:A5], [A7])

  5. '目前整張Worksheet任何地方有異動, 均會觸動本VBA.
  6. '如想縮小觸動範圍為[A2],[A4:A5],[A7],請將下列前面之一撇「'」去掉
  7. 'If Intersect(Target, Rng) Is Nothing Then Exit Sub
  8. If [A2] <> "" And Application.CountA(Rng) < Rng.Count Then
  9.     For Each E In Rng
  10.        If E = "" Then
  11.            MsgBox E.Address & " 一定要輸入內容, 不能留下空白。"
  12.        End If
  13.     Next
  14. End If
  15. End Sub
複製代碼

作者: Hsieh    時間: 2016-3-8 13:36

回復 1# aweihsu

資料/驗證
   [attach]23400[/attach]
作者: lpk187    時間: 2016-3-8 15:14

本帖最後由 lpk187 於 2016-3-8 15:17 編輯

回復 1# aweihsu
當第二列有輸入值會停留在第5列,而當第2列和第5列有值時,則停留在第7列,第5列和第7列未輸入值則點選其他儲存格後都會跳回未輸入值的第5列或第7列
  1. Option Explicit

  2. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  3.     Dim Rng As Range, Col%
  4.     For Each Rng In Target
  5.         Col = Cells(2, Columns.Count).End(xlToLeft).Column
  6.         If Cells(2, Col) <> "" Then
  7.             If Cells(5, Col) = "" Then
  8.                 Cells(5, Col).Select
  9.                 Exit For
  10.             ElseIf Cells(7, Col) = "" Then
  11.                 Cells(7, Col).Select
  12.                 Exit For
  13.             End If
  14.         End If
  15.     Next
  16. End Sub

  17. Private Sub 修改模式_Click()
  18.     Application.EnableEvents = False
  19. End Sub

  20. Private Sub 輸入模式_Click()
  21. Application.EnableEvents = True
  22. End Sub
複製代碼

作者: yen956    時間: 2016-3-9 08:52

回復 4# Hsieh
顯然版大 資料/驗證 的方法是最佳解決方案,
但小弟功力太差, 試了半天, 還是作不出 資料/驗證 的方法,
還請版大進一步指導, 謝謝!!
作者: yen956    時間: 2016-3-10 15:44     標題: 如何做 資料/驗證 ?

如何做出 如 Hsieh 大大所秀出的
http://forum.twbts.com/thread-16562-1-1.html
4# 資料/驗證 ?
作者: Hsieh    時間: 2016-3-10 19:25

回復 6# yen956


    [attach]23413[/attach]
作者: yen956    時間: 2016-3-11 04:37

回復 8# Hsieh
謝謝Hsieh版大的回覆與指導,
原來[A2]驗証公式是
=countblank(A5:A7)<>0
謝謝!!
作者: 准提部林    時間: 2016-3-11 13:05

A5, A7一定要輸入值,不然就沒辦法往下輸入

往哪個格輸入???
可否上傳表格!!!
作者: yen956    時間: 2016-3-12 09:08

更正:
原來[A2]驗証公式是
=countblank(A5:A7)=0
謝謝!!




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