[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『セル内容の移動』(noro)
(1)A列のあるセルに「20時台」という文字をみつけて、それをひとつ上のセルに移動させる。
(A40の 「20時台」をA39に)(A40は不定なのでFindする)
(2)A列のあるセルにある文字列「20時台」をみつけて次の行も含めて、1行上に2行ごと移す
A40に「20時台」A41に「***」とあるものを、A39に「20時台」A40に「***」に移動させる。
なお(2)の場合は、1行下にするケースもあります。
すでに使用しているマクロに挿入したいので、その部分だけを教えていただけるとありがたいです。
よろしくお願いします
< 使用 Excel:Excel2013、使用 OS:Windows7 >
複数あったらどうしたいですか?
追加で。A1に20時台があったらどうしますか?
さらに追加で。
・「移動」とは? A40 を A39 へ。そのあと A40は空白にするということですか? ・「その部分だけ」とは、どの部分ですか? Find ですか? 「移動」ですか?
と、質問しましたが、とりあえずコードを。要件の取り間違いあれば指摘願います。 (1)が Test1、(2)が Test2Up と Test2Down です。
Sub Test1() Dim c As Range
Set c = Columns("A").Find(What:="20時台", LookAt:=xlWhole) If c Is Nothing Then Exit Sub If c.Row = 1 Then Exit Sub c.Offset(-1).Value = c.Value c.ClearContents
End Sub
Sub Test2Up() Dim c As Range
Set c = Columns("A").Find(What:="20時台", LookAt:=xlWhole) If c Is Nothing Then Exit Sub If c.Row = 1 Then Exit Sub c.Offset(-1).Resize(2).Value = c.Resize(2).Value c.Offset(1).ClearContents
End Sub
Sub Test2Down() Dim c As Range
Set c = Columns("A").Find(What:="20時台", LookAt:=xlWhole) If c Is Nothing Then Exit Sub c.Offset(1).Resize(2).Value = c.Resize(2).Value c.ClearContents
End Sub
(β) 2015/03/08(日) 09:03
※試しました。
これでうまくゆきました。
ありがとうございました。
(noro) 2015/03/08(日) 10:18
「20時台」を見つけたら、その上の行との計2行を1段下の行に移動。(前回はその下の行)
A30に「****」A31に「20時台」とあったら、A31に「****」A32に「20時台」(A30は空欄)
よろしくお願いします。
(noro) 2015/03/12(木) 07:39
こんなことですか?
Offset と Resize について、一度、何かで調べて習得しておかれたらよろしいかと。 でなければ、こんどは3行上をどうこう、4行下にどうこう そのたびに、コードをお願いしますと そう質問することになりますよ。
前回の Test1,Test2Up,Test2Down とあわせて、そのコードの違いと実行結果の違いを見比べ それを理解していたら、以下は自分でかけるはずですが?
Sub Test2Down2() Dim c As Range
Set c = Columns("A").Find(What:="20時台", LookAt:=xlWhole) If c Is Nothing Then Exit Sub c.Resize(2).Value = c.Offset(-1).Resize(2).Value c.Offset(-1).ClearContents End Sub
(β) 2015/03/12(木) 08:53
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.