0

エントリが成績であるエントリの列があるとします。この例では、4 年生とします。数値があればいいだけです。

Function CleanCode(entry) As Integer
    If entry Like "[4]" Then entry = 4
End Function

なぜこの関数はそれをしないのですか?

4

2 に答える 2

3

まず、数字で始まる文字列を「クリーン」にするには、「Val(」関数を使用します。CleanCode 関数によって「entry」パラメーターが変更されることも期待していると思いますが、値を明示的に返す必要があります。 .

Function CleanCode(entry) As Integer
    entry = Val(entry)
    If entry Like "[4]" Then
       entry = 4
    Else
       entry = -1
    End If
    CleanCode = entry
End Function

この関数を別の関数から呼び出して、その動作を確認できます。

Sub CallCC()
  Dim entry As Variant
  entry = "9th"
  Dim Result As Integer
  Result = CleanCode(entry)
  MsgBox "Result = " & Result
  'Result is -1
  entry = "4th grade"
  Result = CleanCode(entry)
  MsgBox "Result = " & Result
  ' Result = 4

End Sub
于 2013-01-20T03:56:45.833 に答える
0

を使用して、文字列を効率的にクリーンアップします。で文字列を消去するにA1は、次のB1ように入力できます。

=CleanString(A1)

Sub Tester()
     MsgBox CleanString("3d1fgd4g1dg5d9gdg")
End Sub

Function CleanString(strIn As String) As String
    Dim objRegex
    Set objRegex = CreateObject("vbscript.regexp")
    With objRegex
     .Global = True
     .Pattern = "[^\d]+"
    CleanString = .Replace(strIn, vbNullString)
    End With
End Function
于 2013-01-20T12:15:24.917 に答える