[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『エクセルVBAの特定文字を含むセルの選択について』(naru)excel2000
A B C りんご 山本商店 B1-367098 みかん B1-367099 B1-367100 B1-367101 B1-367098 B1-367098 AH-367111 AH-367367 AH-374311 AH-374312 ・ ・ 上記のような表があり、C列のセルの頭二文字(B1とかAH)でならんでいます。 この頭二文字で並んでるセル範囲を取得して(B1ならA1:C6まで) 頭二文字の名前がついている別シートへコピペしたいのですが C列頭二文字の種類は全部で五種類ほどあります) ・c列 leftで頭二文字 取り出す ・c列上からと下からで位置を取得してからresizeする でいいのでしょうか? vba初心者でなかなか頭でまとまりません。御指導下さい。
>B1ならA1:C6まで
AH なら? A7〜C10 ? もしそうなら、本当は、1行目をタイトル行にしてオートフィルタを使うのがてっとりばやいよ。 (マクロがよければ、マクロで)
ところで、絞り込みの2文字の指定方法はどう考えている?
(ぶらっと)
現在のレイアウトだとして別案。(とりあえず抽出文字列は固定で与えている)
Sub Test() Dim s As String Dim f As Range Dim t As Range
s = "B1*" '抽出すべき頭文字
With Sheets("Sheet1") '元シート Set f = .Columns("C").Find(What:=s, After:=.Range("C" & Rows.Count), LookAt:=xlWhole) If f Is Nothing Then MsgBox "データが見つかりません" Else Set t = .Columns("C").Find(What:=s, After:=.Range("C1"), SearchDirection:=xlPrevious, LookAt:=xlWhole) With Sheets("Sheet2") '転記シート .UsedRange.ClearContents Range(f, t).Offset(, -2).Resize(, 3).Copy .Range("A1") .Select End With MsgBox "抽出コピー完了" End If End With
End Sub
追記)
Range(f, t).Offset(, -2).Resize(, 3).Copy .Range("A1")
これは
Range(f.Offset(, -2), t).Copy .Range("A1")
こう記述したほうがわかりやすいかも。
(ぶらっと)
レイアウトが今のまま(タイトル行無し)だとして最初に言った、オートフィルター案 このコードは、ほとんどマクロ記録したものをつなぎ合わせて、すこしお化粧直しすればできあがる。 抽出文字列は上記同様、固定で与えている。
Sub Test2() Dim s As String Dim f As Range Dim t As Range Dim r As Range Dim shTo As Worksheet
Application.ScreenUpdating = False
s = "B1*" '抽出すべき頭文字 Set shTo = Sheets("Sheet2") '転記シート
With Sheets("Sheet1") '元シート .AutoFilterMode = False .Rows(1).Insert Shift:=xlDown 'フィルター用タイトル行を挿入 .Range("A1:C1").Value = Array("A", "B", "C") 'フィルター用タイトル .Range("A1").AutoFilter Field:=3, Criteria1:="=" & s shTo.UsedRange.ClearContents .AutoFilter.Range.Copy shTo.Range("A1") If shTo.Range("A1").CurrentRegion.Rows.Count = 1 Then MsgBox "データが見つかりません" End If shTo.Rows(1).Delete .AutoFilterMode = False .Rows(1).Delete End With
shTo.Select Application.ScreenUpdating = True MsgBox "抽出コピー完了"
End Sub
(ぶらっと)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.