"組織図"シートから"Sheet1"シートに社員情報を転記するマクロを作成しています。
"課検索"マクロと”メンバー検索”マクロを作成しましたが、
課を"Sheet1"のA列にコピペしたあと、
メンバーをB列にコピペすると、
メンバーがいない課の隣に、次の行の課のメンバーがコピペされてしまいます。
どうしたら空白セルをコピペできるでしょうか。
Sub 課検索() Dim SearchRange As Range '検索範囲格納 Dim ResultRange As Range '検索結果格納 Dim StartRange As Range '検索行格納 Dim KeyItem As String Dim MsgStr As String Dim i As Long i = 1 Set SearchRange = Worksheets("組織図").Range("A:Z") '検索したいデータ範囲 KeyItem = "課" Set ResultRange = SearchRange.Find(KeyItem, LookAt:=xlPart) If Not ResultRange Is Nothing Then Set StartRange = ResultRange '最初に見つかったセルを格納しておく Do If InStr(ResultRange.Value, "課長") = 0 And InStr(ResultRange.Value, "課担当") = 0 Then ResultRange.Copy Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial (xlPasteValues) Application.CutCopyMode = False i = i + 1 End If Set ResultRange = SearchRange.FindNext(After:=ResultRange) '次の検索セルを指定する If ResultRange.Address = StartRange.Address Then '見つかったセルが最初のセルか判定 Exit Do '同じ場合はループを離脱 End If Loop End If End Sub
コード Sub メンバー検索() Dim SearchRange As Range '検索範囲格納 Dim ResultRange As Range '検索結果格納 Dim StartRange As Range '検索行格納 Dim KeyItem As String Dim MsgStr As String Dim i As Long i = 1 Set SearchRange = Worksheets("組織図").Range("A:Z") '検索したいデータ範囲 KeyItem = "課" Set ResultRange = SearchRange.Find(KeyItem, LookAt:=xlPart) If Not ResultRange Is Nothing Then Set StartRange = ResultRange.Offset(0, 1) '最初に見つかったセルを格納しておく Do If InStr(ResultRange.Value, "課長") = 0 And InStr(ResultRange.Value, "課担当") = 0 Then ResultRange.Offset(0, 1).Copy Worksheets("Sheet1").Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).PasteSpecial (xlPasteValues) Application.CutCopyMode = False i = i + 1 End If Set ResultRange = SearchRange.FindNext(After:=ResultRange) '次の検索セルを指定する If ResultRange.Offset(0, 1).Address = StartRange.Address Then '見つかったセルが最初のセルか判定 Exit Do '同じ場合はループを離脱 End If Loop End If End Sub