以下のようなシートがあります
”組織図”シート
(列 不特定
営業部
部付)田中太郎
部付)鈴木次郎
部付)佐藤三郎
部付)山田四郎
↑のシートから↓のシートのように転記したいです。
”Sheet1”
A列 B列
営業部 部付)田中太郎
営業部 部付)鈴木次郎
営業部 部付)佐藤三郎
営業部 部付)山田四郎
方法として、
"部付)"をFIND関数で検索、
B列にそれを転記
A列にその単語と同じ列で、その単語の上の行の中で“*部”検索して、
一番最初の値を返す
こんなマクロはどう組めばよろしいのでしょうか。
Sub 部付)検索() Dim SearchRange As Range '検索範囲格納 Dim ResultRange As Range '検索結果格納 Dim StartRange As Range '検索行格納 Dim KeyItem As String 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 Then ResultRange.Copy Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial (xlPasteValues) Application.CutCopyMode = False End If Set ResultRange = SearchRange.FindNext(After:=ResultRange) '次の検索セルを指定する If ResultRange.Address = StartRange.Address Then '見つかったセルが最初のセルか判定 Exit Do '同じ場合はループを離脱 End If Loop While StartRange <> ResultRange End If End Sub
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。