Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Microsoft 365)
検索できない。
投稿日時: 23/04/08 10:17:33
投稿者: wing55

お世話になります。
エクセルファイルを、Microsoft Excel 97-2003 ワークシート (.xls)のバージョンから、Microsoft 365にしました。
以下のように、コードを書いておりますが、検索結果が、該当なしとなります。
原因を教えて頂きたいと思います。
どうぞよろしくお願い致します。
 
Private Sub CommandButton2_Click() '検索
     
   Dim mySt(2 To 5) As String
   Dim i&, j&, n&
   Dim lonText&
   Dim lonRange As Range
 
   With ThisWorkbook.Worksheets("住所録")
      lonText = Val(UserForm1.TextBox1.Value)
      MsgBox lonText
     Set lonRange = .UsedRange.Columns("b:g") 'UsedRange.Columns(入力されているセルの列数をカウントする
    
   On Error Resume Next
     For i = 2 To 5
      mySt(i) = Application.WorksheetFunction.VLookup(lonText, lonRange, i, False)
     Next
   On Error GoTo 0
   End With
 
     For i = 2 To 5
      Controls("textbox" & i).Text = mySt(i)
     If mySt(i) = Empty Then Controls("TextBox" & i).Text = "該当なし"
     Next
End Sub

回答
投稿日時: 23/04/08 14:00:58
投稿者: 半平太

>検索結果が、該当なしとなります。
>原因を教えて頂きたいと思います。
 
そう言われましても、実際に該当するものが存在しなければ、該当なしが正しいので、
その結果がおかしいと言えるだけのデータを提示してください。
 
1.lonTextには何が入ったのか?
2.住所録シートのどのセルに上記1と同じ値が入っているのか?
  その値はちゃんと数値型になっているのか(つまり文字列ではない)
3.UsedRangeのアドレスプロパティはどうなっているのか?
  これは、MsgBox lonText を以下に変更すれば簡単に確認できます。
                     ↓
            MsgBox lonText & " " & ThisWorkbook.Worksheets("住所録").UsedRange.Address

投稿日時: 23/04/08 14:33:27
投稿者: wing55

半平太さん
simpleさん
 
ご回答ありがとうございました。
 
.UsedRange.Columns("b:g") のことろを、("a:g")としたところ、検索出来ました。
 
アドバイスありがとうございました。