現在Sheet1のA21からQ21の17個のセルにデータが入っています。(これは同じシート内の
データが飛ぶようになっているので厳密には計算式が入っています。なぜならその個々のデータのセルが点在しているためです)また、E14に項番を入力するセルがあります。
そしてSheet2のA列に項番が振られており、B~R列のA行に17個の項目名が入っています。
このエクセルで、E14に項番を入れて実行すれば、Sheet1のA21からQ21のデータを
Sheet2の先と同じ項番の行のB~R列にコピーするマクロを作りたいのですが
うまくいきません。どのようなコード書けばよいのでしょうか;
No.1ベストアンサー
- 回答日時:
具体的なアナタのエクセルの姿にキチンと正確に合った姿で、マクロは作らないと意味がありません。
それから。項番を入力する「E14」には、何か計算式で現れるんじゃなく、実際に手で記入する事が前提です。
たとえば。
「項番」が単純な1,2,3…で、その番号の1,2,3がシート2の2行目、3行目、4行目…に対応しているなら。
手順:
シート1のシート名タブで右クリックしてコードの表示を選ぶ
現れたシートに下記をコピー貼り付ける
private sub worksheet_change(byval Target as excel.range)
if target.address <> "$E$14" then exit sub
if target = "" then exit sub
worksheets("Sheet2").range("B1:R1").offset(range("E14").value).value = range("A21:Q21").value
end sub
1,2,3番の対応するシート2の行位置がずれてるなら、それに見合った行に転記するようにご自分でマクロを修正してください。
たとえば。
「項番」が何かの言葉?で、シート2のA列から該当の値をわざわざ検索して探さなきゃならないようなことなら(ついでに言えば、該当する項番が実際にはシート2のA列に記入されていない場合といった事まで考えなきゃならないなら)
手順:
シート1のシート名タブで右クリックしてコードの表示を選ぶ
現れたシートに下記をコピー貼り付ける
private sub worksheet_change(byval Target as excel.range)
dim h as range
if target.address <> "$E$14" then exit sub
if target = "" then exit sub
set h = worksheets("Sheet2").range("A:A").find(what:=range("E14").value, lookin:=xlvalues, lookat:=xlwhole)
if h is nothing then
msgbox "NOT FOUND"
exit sub
end if
h.resize(1, 17).value = range("A21:Q21").value
end sub
言わずもがなですがこの手のマクロはシートに1つしか登録できないので、別のマクロを試すときはマクロを消して書き換えます。
keithin様、ご回答ありがとうございます。完璧で非の打ち所のないご回答に
びっくりしました。確かに項番が1から連続で割り振られているのか、そもそも
ない番号も存在するのかといった色々なことを考える必要がありますよね。
前提条件が全然足りない質問で大変申し訳ございませんでした。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelでASCを使って全角を半角...
-
今まで文字化けなく開けていたc...
-
Microsoft 365Excelの見開きペ...
-
Excel関数について教えてくださ...
-
マクロの処理が遅くなった
-
スプレッドシートで指定された...
-
エクセルの質問です。 F列からL...
-
Excel関数について教えてくださ...
-
エクセルのセル内に分数などの...
-
作成した数式を値として表示し...
-
ワークシートに出現したこの画...
-
条件付き書式設定で罫線を引き...
-
EXCELの散布図で日付が1900年に...
-
タイムスタンプとテキストから...
-
シートの情報を別のシートへま...
-
Excelでの文字色
-
【マクロ】VLOOKUPにて参照元に...
-
エクセルの文字が途中から消える
-
エクセルの数式バーのフォント...
-
エクセルでファイルの最終更新...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの警告について
-
Excelで数値を時間数に変換する...
-
エクセルの数式バーのフォント...
-
エクセルで数字の組み合わせを...
-
エクセルを使用して、円周率を...
-
Excelで特定の文字列が含まれて...
-
Excel 対象のセルに入力が無い...
-
任意の値が存在する行に名前を...
-
エクセルでファイルの最終更新...
-
index関数の説明をお願いします。
-
条件付き書式でやりたいのですが
-
重複しない値を取り出したい
-
【ExcelVBA】UTF-8(BOM無)でC...
-
【マクロ】マクロが割当てされ...
-
エクセル IF計算式?でしょうか?
-
エクセルで曜日を入れたい
-
表中の指定した条件の文字列を...
-
【Excel】版が同じ事を示す番号...
-
EXCELの散布図で日付が1900年に...
-
Excelについて。Excelに縦1列に...
おすすめ情報