0

ユーザーが各セルにメタデータを入力するExcelシートが1つあります。私がする必要があるのは、英数字とカンマのみを許可するマクロを書くことです。

特殊文字を許可しないテスト目的のマクロを作成しました。しかし、セルに有効な文字を 1 つ入力すると、許可されていない文字が許可されます。私はそれを修正する方法がわかりません。

私のコード:

Private Sub WorkBook_Open()
       MsgBox "Running the Disable_Keys() Macro"
       Call ThisWorkbook.Disable_Keys
End Sub

Sub MyMsg()
    MsgBox "Press Another Key"
End Sub

Sub Disable_Keys()

     Dim I As Long
     Dim KeysArray As Variant
     Dim Key As Variant

     KeysArray = Array("@", "!", "~", "#", "$", "&", "|", "\", ":", "*", "_", "-", "=", "'", ";", "<", ">", "?", "/", "'", ":")

     For Each Key In KeysArray
          Application.OnKey Key, "ThisWorkbook.MyMSg"
     Next Key
  End Sub 
4

1 に答える 1

0

これにより、0-9、azまたはコンマ以外のものがあるかどうかがチェックされます。特定の文字を除外する場合は、.Pattern変更したものになります。何かが見つかった場合、セルは無効であり、細胞。

Private Sub Worksheet_Change(ByVal Target As Range)

Dim TestCell
Dim RE As Object
Dim REMatches As Object

Set RE = CreateObject("vbscript.regexp")
With RE
    .MultiLine = False
    .Global = False
    .IgnoreCase = True
    .Pattern = "[^0-9A-Z,]"
End With

For Each TestCell In Target.Cells
    Set REMatches = RE.Execute(TestCell.Value)
    If REMatches.Count > 0 Then
        MsgBox "Invalid:" & TestCell.Address & "-" & TestCell.Value
        TestCell.Value = ""
    End If
Next

End Sub
于 2012-09-07T17:06:29.817 に答える