
4月~3月まで12カ月横に並んだ表へ指定範囲を貼り付けたい。
Sheet2の指定範囲、Range("C3:C17")をコピーしてSheet1へ貼り付けたい。
毎月貼り付ける位置が違うので、Sheet2のセルC2へ貼り付け月を入力し、Sheet1の同一月の列へ貼り付けるにはどのようにしたら良いか教えてください。
Cellsの列を変数にしてコードを書きたいのですがマクロ勉強中で下記より先に進めません。
Sheets(2). Range("C3:C16").Copy Sheets(1).Cells(4, i)

No.2ベストアンサー
- 回答日時:
No1です。
>If c < 15 Then
>この記述の解説をお願いします。
見出し部分と一致するものがなかった場合、ループを全部回って抜けてきますのでcの値は15になっています。
それを判別しています。
例えば、検索をFindメソッドで行うなら、ループで探す代わりに、
Set f = sh.Range("C3:N3").Find(.Range("C2").Value, LookAt:=xlWhole)
If Not f Is Nothing Then 処理
などとなりますが、やはり同様に、
If ~~ の部分で、対象が存在しない場合の分岐を行う必要がでてきます。
「該当列がないような入力はしない」ことを前提になさっているとは思いますが、人間には入力ミス等はつきものですので、その度にエラーが発生したり、おかしな処理をされてしまうようでは困りますよね?
それを避けるための分岐ということです。
No1のコードでは、「見つからない場合は何もしない」としてありますが、「その旨の警告を出す」等にしておいても宜しいかと思います。
If ~~ Then ~~ Else ~~
を用いることで、できますよね。
No.1
- 回答日時:
こんにちは
>4月~3月まで12カ月横に並んだ表へ~
タイトル部分が固定なら、Sheet2のC2セルの値から計算で転記位置を求めることも可能ですが、とりあえず同じ値のセルを探す方法にしてあります。
探す方法もWorksheetFunction.Match()などを使う方法も考えられますが、単純にループで照合して検索する方法にしてあります。
>Range("C3:C17")をコピーして~
C3:C17だとSheet1の合計欄を上書きしてしまうと思いますので、C3:C16としてあります。
(ご提示のコードの方は、C3:C16になっているようですし・・)
以下、ご参考までに。
Sub Sample()
Dim sh As Worksheet, c As Long
Set sh = Worksheets("Sheet1")
With Worksheets("Sheet2")
For c = 3 To 14
If sh.Cells(3, c).Value = .Range("C2").Value Then Exit For
Next c
If c < 15 Then .Range("C3:C16").Copy sh.Cells(4, c)
End With
End Sub
ありがとうございます。思い通りの結果が得られました。1箇所質問させて下さい。If c < 15 Then
この記述の解説をお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【初月無料キャンペーン実施中】オンライン健康相談gooドクター
24時間365日いつでも医師に健康相談できる!詳しくはコチラ>>
-
Sheet1をフィルターで「りんご」を抽出し、Sheet2へ地域を貼り付ける下記マクロを変更して S
Visual Basic(VBA)
-
【マクロ】表への繰り返し転記について
Visual Basic(VBA)
-
日付を重複させずに数えたい
Visual Basic(VBA)
-
4
シート間で同じ値があったら指定範囲をコピーして貼り付け
Visual Basic(VBA)
-
5
VBA言語プログラミング
Visual Basic(VBA)
-
6
エクセルでのマクロを使ったデータの並べ替え
Excel(エクセル)
-
7
VBAマクロでシートコピーした新シートにコピー元シートとの計算式の入れ方を教えて下さい。
Visual Basic(VBA)
-
8
VBA同じシートの別ブックに転記していく方法
Visual Basic(VBA)
-
9
vba 最大値 条件分岐
Visual Basic(VBA)
-
10
エクセル 2つの列にある値の完全一致を抜き出すVBA
Visual Basic(VBA)
-
11
VBAコードで質問があります
Visual Basic(VBA)
-
12
初めてマクロを入力しますが、テキストとおりに入力したのに構文エラーです。修正を教えてください。
Visual Basic(VBA)
-
13
VBAリストボックスで選択した後
Visual Basic(VBA)
-
14
該当セルの値を別ブックのシート名と一緒であればコピーしてほしい
Visual Basic(VBA)
-
15
VBAの計算について
Visual Basic(VBA)
-
16
VBAのユーザーフォームのテキストボックスに入力制限をしたい
Visual Basic(VBA)
-
17
マクロ実行時、自動で背景色を変えたい。 C列にあるチェックボックスをチェックするとB列に「TRUE」
Visual Basic(VBA)
-
18
エクセルの複数ブックのシートを1つまとめたい 都道府県ごとに47ブックがあり、そのシートのデータを1
Excel(エクセル)
-
19
順列をランダムに発生するプログラム
Visual Basic(VBA)
-
20
テキストボックスの値を該当セルに登録する方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
VBAを使って検索したセルをコピ...
-
5
VBAのFind関数で結合セルを検索...
-
6
Changeイベントでの複数セルの...
-
7
Cellsのかっこの中はどっちが行...
-
8
エクセル 2つの表の並べ替え
-
9
エクセルVBA intersect colu...
-
10
エクセルで行を挿入し、小計、...
-
11
データグリッドビューの一番最...
-
12
エクセルVBA、特定条件で行を追加
-
13
ダブルクリック 条件 分岐
-
14
期限を超えた日付に警告のメッ...
-
15
VBAにて 商品と月別ごとにの...
-
16
VBAで文字列を結合
-
17
文字列の結合を空白行まで実行
-
18
【VBA】複数行あるカンマ区切り...
-
19
VBAで指定範囲内の空白セルを左...
-
20
VBA 別ブックからの転記の高速...
おすすめ情報
公式facebook
公式twitter