戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
文字列と数値の混合した照合

    [191567] 文字列と数値の混合した照合-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ 六 -(2020/03/04(14:33))
    □U R L/
      入力シートに入れた「名前」と「製品番号の末尾」が別シートのデータシートにある表と一致したら、
      別のコードを呼び出して処理、一致しなかったら強制終了するマクロを作っています。
      製品番号の末尾は名前毎に何種類かあり、データシートに名前(A11)、末尾1(B11)、末尾2(C11)、…といった感じで末尾は横へ、名前は下へと並んでいます。
      また製品番号の末尾はアルファベット(半角大文字)と1〜0の数値で構成されています。
      以下のコードを組み立てたのですが、アルファベットの末尾が照合できなくて困っています。
      どうかよろしくお願いします。
      
      Sub 末尾の判定1()
          
          Dim EndNum As Variant '入力シートの方の末尾
          Dim P_name As Long  '名前の行数
          Dim hikaku As Long  '末尾の比較セルの列数
          
          Set sh5 = Sheets("入力シート")
          Set sh12 = Sheets("データ")
          
          Worksheets("入力シート").Protect Password:="pass", UserInterfaceOnly:=True
          Worksheets("データ").Protect Password:="pass", UserInterfaceOnly:=True
          
          Application.ScreenUpdating = False
          
          '入力シートに入力したセル(B4)から製品番号の末尾を取得
          EndNum = Right(sh5.Range("B4"), 1)
       
          'データのシートをアクティブシートにする
          sh12.Activate
          
         '入力シートに入れた名前(B3)とデータシートにある表の中の名前を一致させて行数を出す
          For P_name = 11 To Cells(Rows.Count, 1).End(xlUp).Row
          
              If sh5.Range("B3").Value = sh12.Range("A" & P_name).Value Then
                  
                  '名前が一致する行が見つかったらその行の2列目から右へ入力した末尾と順に照合していく
                  For hikaku = 2 To Cells(P_name, Columns.Count).End(xlToRight).Column
                      
                      '照合する末尾があったら「操作1」を呼び出す。
                      If EndNum = sh12.Cells(P_name & hikaku).Value Then '←ここで数値は照合できるが、アルファベットは認知できないのかエラー処理の方へ行ってしまう。
                  
                          Call 操作1
                          
                          Exit Sub
                      
                      End If
                      'エラー処理
                      MsgBox "ミスがあります。操作を終了します。"
                      
                      Exit Sub
                      
                  Next
                  
              End If
              
          Next
      
      End Sub


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191568] Re[1]: 文字列と数値の混合した照合-

    記事引用/メール受信=OFF■

    □投稿者/ 半平太 -(2020/03/04(14:55))
    □U R L/
      If EndNum = sh12.Cells(P_name & hikaku).Value Then
      
        本題じゃないかもですけど、こうじゃないですか?(&じゃなく、カンマ)
                      ↓
        If EndNum = sh12.Cells(P_name , hikaku).Value Then
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191569] Re[2]: 文字列と数値の混合した照合-

    記事引用/メール受信=OFF■

    □投稿者/ 六 -(2020/03/04(15:02))
    □U R L/

      >半平太様

      回答ありがとうございます。
      &ではなく、カンマなんですね。
      早速直します。




    [191571] Re[3]: 文字列と数値の混合した照合-

    解決!!ありがとうございました! / 記事引用/メール受信=OFF■

    □投稿者/ 六 -(2020/03/04(15:57))
    □U R L/

      >半平太様

      うまくいきました!!
      ありがとうございました。



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G