[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『特定の名前の抜き出し』(RYO)
こんばんは。
EXCEL2003を使用しています。
SHEET1からSHEET2へ特定の名前〔田中〕分の品番をコピーしたいのですが
教えていただきたく宜しくお願い致します。
Sub TEST()
With Worksheets("Sheet2")
lRow = .Range("C" & Rows.Count).End(xlUp).Row
Do While Cells(i, 1) <> "" ←SHEET1のA列が空白になるまで
If Sheet1 / C列に田中があったら Then
'Sheet2/F列一番下の行に品番を追加したいです
'.Range("C" & lRow + 1).Value = ??
End Sub
SHEET1のA列 = 連番がふられています
SHEET1のC列 = 特定の名前〔田中〕以外にもその他の名前や、空白セルが混在しています。
SHEET1のE列 = 品番がかかれています
もし、田中分がSHEET1にあれば、
SHEET2のF列一番下の行に品番を追加したいです。
SHEET1,2ともに題が8行目に書かれていて、9行目からデータが記載されています。
初心者なもので、説明不足あるかもしれませんが
ご享受いただきたくお願い致します。
セルを表すのに Range と言う書き方と Cells と言う書き方が混在して有りますが 今回列番号が変わらないので Range と言う書き方で統一してみました。
また、転記条件は「C列に田中があったら」と言うご説明ですが コードは「C列が田中だったら」と言う条件にして有りますので 変更が必要かもしれません。
Sheet1をアクティブにして 実行してみて下さい。
'------
Sub TEST_H1()
Dim i As Long, lRow As Long
i = 9
With Worksheets("Sheet2")
lRow = .Range("F" & Rows.Count).End(xlUp).Row
Do While Range("A" & i).Value <> "" '←SHEET1のA列が空白になるまで
If Range("C" & i).Value = "田中" Then 'C列が田中だったら
'Sheet2/F列一番下の行に品番を追加
lRow = lRow + 1
.Range("F" & lRow).Value = Range("E" & i).Value
End If
i = i + 1
Loop
End With
End Sub
'------
(HANA)
衝突。
Sheet2への転記項目が品番だけでどんな意味があるのかわからないけど、とにかく説明があったロジックをコードにしてみた。 要件がより明確になれば、本当は、フィルタリング処理が適しているような気がするね。
Sub Sample1()
Dim Row2 As Long
Dim c As Range
Dim sh2 As Worksheet
Application.ScreenUpdating = False
Set sh2 = Sheets("Sheet2")
Row2 = sh2.UsedRange.Cells(sh2.UsedRange.Cells.Count).Row
With Sheets("Sheet1")
For Each c In .Range("C9", .Range("C" & .Rows.Count).End(xlUp))
If c.Value = "田中" Then
Row2 = Row2 + 1
sh2.Cells(Row2, "F").Value = c.Offset(, 2).Value
End If
Next
End With
sh2.Select
Set sh2 = Nothing
Application.ScreenUpdating = True
MsgBox "転記終了"
End Sub
(ぶらっと)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.