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

    [195538] シートを順にスタッフの名前を検索したい-

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

    □投稿者/ 赤毛 -(2023/01/24(23:51))
    □U R L/
      初めまして。
      
      最終シートにスタッフ名をA列に書いてあり
      上から順にシート1から最終シート前まで
      そのスタッフ名を検索し個数を出したいのですが
      あるシートにそのスタッフ名がなかった時に
      何もせず次のシートに進みたいのですが
      そこがうまくいきません。
      そのコードの書き方を教えていただきたくお願いします。
      
      初心者のため見苦しいコードですが、よろしくお願いします。
      
      Sub 人件費()
      
          Dim sc As Integer     'シフトシート数
          Dim stuff As Variant  'スタッフ名
          Dim c As Variant      'シフトの入ってる色
          Dim i As Integer      'スタッフ名のある行
          Dim r As Range        'スタッフの入ってるセル
         
      
         Sheets("人件費").Activate   ’最終シート
       
        For i = 4 To Cells(Rows.Count, 1).End(xlUp).Row    
        
         
         
         stuff = Cells(i, 1).Text
         
         For sc = 1 To Sheets.Count - 1                    
         
         Sheets(sc).Activate
         
            
          Set myRange = Range("C4:AS45")
      
          
        Dim rng As Range
        Dim adr As String  ' 最初に見つかったセルのAddress
        Dim n As Long    ' 見つかったセルの個数
      
        n = 0
        Set rng = Cells.Find(stuff)
       
        
          n = 1
          adr = rng.Address
        
      
        Do
          Set rng = Cells.FindNext(After:=rng)
          If rng.Address = adr Then
            Exit Do
          Else
            n = n + 1
          End If
        Loop
      
        MsgBox n & "個見つかりました。"
      
          
        
       Next
      
       
       Next
       
        
      End Sub
      
      


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

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




    [195539] Re[1]: シートを順にスタッフの名前を検索したい-

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

    □投稿者/ マナ -(2023/01/25(08:10))
    □U R L/

      Worksheetfunction.countifで個数をカウントしてはどうでしょうか。




    [195548] Re[2]: シートを順にスタッフの名前を検索したい-

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

    □投稿者/ 赤毛 -(2023/01/25(21:32))
    □U R L/
      マナさん
      お返事ありがとうございます。
      Worksheetfunction.countifを使って下記のように作ってみましたが
      カウントされませんでした。
      どこがいけないでしょうか?
      よろしくお願いします。
      
      
      
      Sub 人件費()
      
          Dim sc As Integer     'シフトシート数
          Dim stuff As Variant  'シート「人件費」のスタッフ名
        
          Dim i As Integer      'シート「人件費」のスタッフ名のある行
      
          Dim col As Integer     'シート「人件費」の列 1週毎に集計
          
         
          Dim aaa As Integer    'countした数
          
       
      
      
         Sheets("人件費").Activate
       
        For i = 4 To Cells(Rows.Count, 1).End(xlUp).Row
        
         
         
         stuff = Cells(i, 1).Text
         col = 6
         For sc = 1 To Sheets.Count - 1
      
         If WorksheetFunction.CountIf(Range("C4:AS45"), stuff) > 0 Then
         
         
         
          aaa = WorksheetFunction.CountIf(Range("C4:AS45"), stuff)
          
          Sheets("人件費").Activate
          
          Cells(i, col) = aaa
          
              
          End If
         
         
          col = col + 1
            
         
      
      
      Next
      
      
       
       Next
       
        
      End Sub
      
      


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

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




    [195550] Re[3]: シートを順にスタッフの名前を検索したい-

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

    □投稿者/ マナ -(2023/01/25(22:19))
    □U R L/

      元コードでは、こうしていますが…

      > Sheets(sc).Activate






    [195551] Re[4]: シートを順にスタッフの名前を検索したい-

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

    □投稿者/ 赤毛 -(2023/01/26(00:15))
    □U R L/
      マナさんの教えを元に作成した下記のコードで
      無事に出来上がりました。
      本当にありがとうございました。
      
      
      
      
      Sub 人件費()
      
          Dim sc As Integer     'シフトシート数
          Dim stuff As Variant  'シート「人件費」のスタッフ名
        
          Dim i As Integer      'シート「人件費」のスタッフ名のある行
      
          Dim col As Integer     'シート「人件費」の列 1週毎に集計
          
         
          Dim aaa As Integer    'countした数
          
       
      
      
         Sheets("人件費").Activate
       
        For i = 4 To Cells(Rows.Count, 1).End(xlUp).Row
        
         col = 6
         
         stuff = Cells(i, 1).Text
         
         For sc = 1 To Sheets.Count - 1
        
          Sheets(sc).Activate
      
         If WorksheetFunction.CountIf(Range("C4:AS45"), stuff) > 0 Then
         
          aaa = WorksheetFunction.CountIf(Range("C4:AS45"), stuff)
              Sheets("人件費").Activate
          
          Cells(i, col) = aaa
          
              
          End If
         
         
          col = col + 1
            
         
      
      
      Next
      
       Sheets("人件費").Activate
       
       Next
       
        
      End Sub
      
      


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

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



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

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

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


- Child Forum -
Edit:ゆう-G