返回列表 上一主題 發帖

[發問] 驗證欄位名稱問題。

[發問] 驗證欄位名稱問題。

驗證欄位名稱問題

假設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 有任何一個欄位名稱與我所要求的不符,則彈出式提示 有問題,好讓我之後查證。 謝謝

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



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

TOP

本帖最後由 准提部林 於 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


========================

TOP

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



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

非常感謝閣下幫忙。

TOP

  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
複製代碼

TOP

        靜思自在 : 真正的愛心,是照顧好自己的這顆心。
返回列表 上一主題