[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBA 検索 コピー 貼り付け をしたい』(菊子)
ご教示お願いします。
■やりたい内容 下記セルがある場合 "aaa*"で検索し、HITした"aaa1"を貼りつける。これを上から順に行いたい。
(aaa2は無いものとします)
aaa1
bbb2
ccc3
お忙しい中、初歩的な事ですみません。マクロを組んでいる最中ですが苦慮しております。宜しくお願い致します。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
どこに貼り付けるんですか?
それと、
>>aaa2は無いものとします
この意味は? あろうがなかろうが、1件ヒットして貼り付ければ終わりということですか? それにしては
>>これを上から順に行いたい。
なんですよね? ということは順に処理して、aaaなんたら があれば、それも処理するということでは
(β) 2015/08/17(月) 17:22
どこに貼り付けるんですか?
C列へ上から順に貼りつけます
aaa2は無いものとします
上から順に検索をするマクロで
aaa2
aaa1
とある場合のifを考える必要が無いと記載したかったのです。
宜しくお願い致します。
(菊子) 2015/08/17(月) 17:49
一例です。
Sub Test() Dim i As Long Dim c As Range
Columns("C").ClearContents
For Each c In Range("A1", Range("A" & Rows.Count).End(xlUp)) If c.Value Like "aaa*" Then i = i + 1 Cells(i, "C").Value = c.Value End If Next
End Sub
(β) 2015/08/17(月) 18:33
上記で充分だとは思いますが、エクセルの検索機能を使った例もアップします。
Sub test2() Dim c As Range Dim f As Range Dim r As Range Dim pos As Range
Columns("C").ClearContents
Set r = Range("A1", Range("A" & Rows.Count).End(xlUp)) Set pos = Range("C1")
Set c = r.Find(What:="aaa*", LookAt:=xlWhole, After:=r.Cells(r.Count)) If c Is Nothing Then Exit Sub
Set f = c
Do pos.Value = c.Value Set pos = pos.Offset(1) Set c = r.FindNext(c) Loop While c.Address <> f.Address
End Sub
(β) 2015/08/17(月) 18:44
業務の都合で暫く確認出来無いのですが時間が空き次第確認します。
(菊子) 2015/08/19(水) 08:53
現状
検索範囲がA列と別シート("ZZZ")にいます。同じデータです (一つにしたいのですが記載方法が分かりませんでした) B列には検索値があります C列に結果を入力したいです
お忙しい中申し訳ございませんがご教示頂きたく、宜しくお願い致します。
Dim dir
Dim BIR
Dim i As Long
Dim c As Range
DIRL = Range("B1").End(xlDown).Row '検索値の設定
dir = Worksheets("ZZZ").Range("B3").End(xlDown).Row '検索範囲の設定
Columns("C").ClearContents BIR = Worksheets("ZZZ").Range("B3").End(xlDown).Row '
For Each c In Range("A1", Range("A" & Rows.Count).End(xlUp)) '検索範囲の設定 = dirに変更?
For i = 2 To DIRL '検索値を最終行までFINDする
If c.Value Like Range("B" & i) = BIR Then '見つかった場合 i = i + 1 Cells(i, "C").Value = c.Value Else '見つからない場合
End If Next Next
End Sub
(菊子) 2015/08/21(金) 09:18
> 検索範囲がA列と別シート("ZZZ")にいます。同じデータです > (一つにしたいのですが記載方法が分かりませんでした)
(マナ) 2015/08/21(金) 22:08
お忙しい中ありがとうございます。
初心者故、何をお伝えすれば良いか分かっていない為申し訳ございません。
> 検索範囲がA列と別シート("ZZZ")にいます。同じデータです
> (一つにしたいのですが記載方法が分かりませんでした)
検索範囲をA列としました。分かりにくく申し訳ございません。
A列に、検索範囲があります。
B列に、検索値があります。
C列に、検索結果を書き込みたいです
AAA1 AAA*
BBB2 CCC*
CCC3
・
・
・
上記データがある場合のC列に書き込むマクロを作成しましたがうまく反映出来ませんでした。
ご教示頂きたく、宜しくお願い致します。
Dim dir
Dim BIR
Dim i As Long
Dim c As Range
DIRL = Range("B1").End(xlDown).Row '検索値の取得
dir = Range("A1").End(xlDown).Row '検索する範囲
Columns("C").ClearContents
For Each c In Range("A1", Range("A" & Rows.Count).End(xlUp)) '検索する範囲=dirと同じ
For i = 1 To DIRL '検索値の取得
If c.Value Like Range("B" & i) = dir Then '検索結果がある場合C列へ書き込み
i = i + 1 Cells(i, "C").Value = c.Value Else '見つからない場合何もしない
End If Next Next
MsgBox "終了しました"
(菊子) 2015/08/24(月) 10:10
>>検索範囲がA列と別シート("ZZZ")にいます。同じデータです >> (一つにしたいのですが記載方法が分かりませんでした)
やはり、この意味がわかりません。 (菊子) 2015/08/24(月) 10:10 のコードから推測しようと思ったんですが、コードでは Sheets("zzz") というものが全く登場していませんので、ちんぷんかんぷんです。
「同じデータです」という文章も?? 何が何と同じなんですか?
「一つにしたいのですが」という意味も?? 何と何を1つにしたいのですか? でその、わからない「記載方法」とは? 掲示板上での説明の記載方法? コードの「記述方法」??
それと、テーマとは離れますが、エラーにはならないといえど、dir という変数名を使うのは感心しません。
(β) 2015/08/24(月) 16:23
コメントした通り、仕様や要件がわからないのですが、複数のシートが関係しているとして
・あるシートのレイアウト(具体例付) ・別のシートのレイアウト(具体例付)
これをまず説明して、次に、処理の結果、どのシートがどうなるか、これも具体例付でアップしていただけますか?
(β) 2015/08/24(月) 16:27
元データがシート「ZZZ」、検索条件と検索結果はシート「Sheet1」として、
Sub test()
Dim r As Range Dim t As Range Dim f As Range Dim i As Long
With Worksheets("ZZZ") Set t = .Range("A1", .Range("A" & Rows.Count).End(xlUp)) End With i = 1 With Worksheets("Sheet1") '検索条件、結果シート For Each r In .Range("B1", .Range("B" & Rows.Count).End(xlUp)) Set f = t.Find(r.Value, t.Cells(t.Count, 1), xlValues, xlWhole, , xlNext) If Not f Is Nothing Then .Cells(i, 3) = f.Value i = i + 1 End If Next End With End Sub
という事でしょうか?
(ウッシ) 2015/08/24(月) 16:40
ウッシ様
マクロが動き記載出来ました!!ありがとうございました。
(菊子) 2015/08/24(月) 17:36
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.