2017-01-15 8 views
-1

VBAを習得するのはかなり新しく、このコードを変更してH3:H7細胞(1,2,3,4,5 )値を(1F、2F、3F、4F、5F)に設定してマクロを動作させますか?

たとえば、H3セルの値を "1F"に変更しようとすると、以下の最初のコードがテキスト文字列を処理できないと思うので「ランタイムエラー '13':タイプが一致しません。コード?実行時エラー13テキスト文字列を持つCLngのときに矛盾が発生する

returnedNumber = CLng(words(iWord, 2)) // How should I modify to handle number and text string too? 

Excel Sheet (Screenshot)

Option Explicit 
Private Sub CommandButton3_Click() 
Dim cell As Range 
Dim words As Variant 
Dim word As String, number As Long 

words = Range("H3", Cells(Rows.Count, "G").End(xlUp)).Value 

For Each cell In Range("J3", Cells(Rows.Count, "J").End(xlUp)).SpecialCells(xlCellTypeConstants, xlTextValues) 
    If FindWord(cell.Value, words, word, number) Then 
     cell.Offset(, 3).Resize(, 2).Value = Array(word, number) 
    End If 
Next 
End Sub 
Function FindWord(sentence As String, words As Variant, returnedWord As String, returnedNumber As Long) As Boolean 
Dim iWord As Long 
Dim word As String 

For iWord = LBound(words, 1) To UBound(words, 1) 
    word = CStr(words(iWord, 1)) 
    If InStr(sentence, word) Then 
     FindWord = True 
     returnedWord = word 
     returnedNumber = CLng(words(iWord, 2)) 
     Exit Function 
    End If 
Next 
End Function 

答えて

0

値は、テキストのような"1F"ことができるようにするには、returnedNumber As Stringをする

  • 変更returnedNumber As Longする必要があり、
  • 変更CLng(words(iWord, 2))CStr(words(iWord, 2))をします
  • number As Long
+0

ありがとうございました!それは役に立ちました、私は "Dim number As Long"を "Dim Number As String"に変更しました。良い一日を! –

+0

@GálTamás - よく目撃された - 私はそれを見落としていた。 – YowE3K

関連する問題