Board logo

標題: [發問] 驗證欄位名稱問題。 [打印本頁]

作者: stephenlee    時間: 2020-9-14 10:04     標題: 驗證欄位名稱問題。

驗證欄位名稱問題。

假設A1:E1 有 5個欄位名稱

每一個欄位名稱我要驗證是否是我所要求的名稱。

例如 A1至E1 分別是


Line   JobNo  Color  Size  PO  


我要先開始驗證A1是不是Line, B1是不是Job No, C1是不是Color,D1是不是Size, E1是不是PO

如果由A1檢查到E1 如果是我所驗證的欄位名稱(需要大小寫完全相符),如果是的話,在檢查後以一個彈出式提示
告知 沒有問題。 以一次提示, 不能每一個驗到有問題後再一直彈出提示。

如果A1至E1 有任何一個欄位名稱與我所要求的不符,則彈出式提示 有問題,好讓我之後查證。 謝謝
作者: ikboy    時間: 2020-9-14 10:49

  1. Sub zz()
  2. Dim c, a, Msg$, n&
  3. c = Array("Line", "JobNo", "Color", "Size", "PO")
  4. a = [a1:e1].Value
  5. For j = 1 To UBound(a, 2)

  6. If UCase(c(j - 1)) = UCase(a(1, j)) Then
  7.     Msg = Msg & Chr(10) & j & " " & "Text compare passed"
  8.     If Not c(j - 1) = a(1, j) Then
  9.         Msg = Msg & " but Case not matched"
  10.     Else
  11.         Msg = Msg & " and Case macthed"
  12.         n = n + 1
  13.     End If
  14. Else
  15.     Msg = Msg & Chr(10) & j & " " & "String compare failed"
  16. End If
  17. Next
  18. If n = UBound(a, 2) Then Msg = "!All Passed"
  19. If Len(Msg) > 0 Then Debug.Print Mid(Msg, 2)
  20. End Sub
複製代碼

作者: stephenlee    時間: 2020-9-14 11:15

ikboy 發表於 2020-9-14 10:49



  謝謝大哥幫忙,不好意思我貼上了之後 ,沒有任何提示彈出,可否再麻煩你幫忙再看一下 代碼是否有問題。

非常感謝閣下幫忙。
作者: 准提部林    時間: 2020-9-14 11:56

本帖最後由 准提部林 於 2020-9-14 12:02 編輯

大小寫必須相同:
Sub Macro1()
Dim AR, i%, M, C%
M = Array("檢查無誤", "有錯誤-標示紅字")
AR = Array("", "Line", "JobNo", "Color", "Size", "PO")
With Range("A1:E1")
     .Font.ColorIndex = 0
     For i = 1 To .Count
         If .Item(i) <> AR(i) Then .Item(i).Font.Color = vbRed: C = 1
     Next i
End With
MsgBox M(C)
End Sub

檢查一個不符即跳出:
If .Item(i) <> AR(i) Then .Item(i).Font.Color = vbRed: C = 1: Exit For

若有空格問題, 將文字色改成底色 .Interior.Color


========================
作者: ikboy    時間: 2020-9-15 17:43

謝謝大哥幫忙,不好意思我貼上了之後 ,沒有任何提示彈出,可否再麻煩你幫忙再看一下 代碼是否有問題。 ...
stephenlee 發表於 2020-9-14 11:15



    我使用Debug.print 顯示, 你可以改為 Msgbox Mid(Msg, 2)




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