
他のシートからコピーする下記マクロで貼付け位置をWorksheets(1).Range("A3")の「*月」を参照しています。
Worksheets(1).Range("A3")が西暦だった場合、Fomatで月を取り出して下記マクロに組み込む方法を教えてください。
Sub test1()
Dim Cop
Set Cop = Worksheets(4).Range("G15:G18") 'コピー元
'処理月へ転記
Dim c As Long
For c = 8 To 19 '4月~3月の範囲
If Cells(2, c).Value = Worksheets(1).Range("A3").Value Then Exit For
Next c '該当月の指定
Worksheets(2).Cells(5, c).Resize(Cop.Rows.count, 1) = Cop.Value 'コピー先
End Sub
No.6ベストアンサー
- 回答日時:
No5です。
Format文を使って月を取り出したい場合は、
If Worksheets(2).Cells(2, c).Value = Month(Worksheets(1).Range("A3").Value) & "月" Then Exit For
を
If Worksheets(2).Cells(2, c).Value = Format(Worksheets(1).Range("A3").Value, "m月") Then Exit For
に変えてください。
No.7
- 回答日時:
西暦入力の場合と『”○月"』の文字列の場合があっての事での質問かわかりませんが、
取り敢えずややこしいループによる検索をやめるのも手では?
'For c = 8 To 19 '4月~3月の範囲
'If Cells(2, c).Value = Worksheets(1).Range("A3").Value Then Exit For
'Next c '該当月の指定
' ↓
With Worksheets("Sheet1")
c = IIf(Month(.Range("A3").Value) >= 4, Month(.Range("A3").Value) + 4 , Month(.Range("A3").Value) + 16)
End With
Worksheets(2).Cells(5, c).Resize(Cop.Rows.Count, 1) = Cop.Value 'コピー先
No.5
- 回答日時:
以下のようにしてください。
Cells(2, c).ValueはWorksheets(2)で修飾したほうが安全ですので、
そのようにしています。
-------------------------------------------
Sub test1()
Dim Cop
Set Cop = Worksheets(4).Range("G15:G18") 'コピー元
'処理月へ転記
Dim c As Long
For c = 8 To 19 '4月~3月の範囲
If Worksheets(2).Cells(2, c).Value = Month(Worksheets(1).Range("A3").Value) & "月" Then Exit For
Next c '該当月の指定
Worksheets(2).Cells(5, c).Resize(Cop.Rows.Count, 1) = Cop.Value 'コピー先
End Sub
No.4
- 回答日時:
そもそもの話になりますが、前提条件の確認になります。
1.Sheet2のH2:S2は4月~3月が表示されていますが、これは
①実際に4月~3月の文字が設定されている。
②設定されているのは2022/4/1~2023/3/1の日付であるが、
セルの書式設定で、4月~3月と表示されるようにしてある。
上記の①②のどちらでしょうか。
2.Sheet1のA3に設定される値は
①2023/3/1 等の日付である。
②"3月" 等の文字である。
③3 等の数値であるが、書式設定で3月と表示されるようにしてある。
上記①②③のどのパターンでしょうか。
No.2
- 回答日時:
No1です。
>オブジェクトが必要です。とエラーになりました。
No1に書いておいたはずですが・・・
セルの値がなんなのか不明のままですが、シリアル値としてもよいのなら、
Month(Worksheets(1).Range("A3"))
は数値になります。(=月数になる)
ありがとうございます。月数ですね!
セルH2の4月から横に3月まで並んでいます。(For c = 8 To 19 '4月~3月の範囲)月数ということは、セルA3に「2022/04/01」が入っていた場合、「4」になっているのですね。これに何月の「月」をつけるにはどのようにしたら良いか教えてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
電子書籍プレゼントキャンペーン!
最大2万円超分当たる!マンガや小説が読める電子書籍サービス『Renta!』で利用できるギフトコードプレゼント実施中!
-
特定の文字を条件に指定範囲のデータを貼り付けるVBA
Visual Basic(VBA)
-
別シートから年齢別の件数をカウントしたいの続き
Visual Basic(VBA)
-
VBAでWorkbook.addの使い方
Visual Basic(VBA)
-
4
Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日
Visual Basic(VBA)
-
5
なぜこんな初歩的なVBAのIf文でエラーか発生して使えないのか、全く理解出来ません。誰か助けてくださ
Visual Basic(VBA)
-
6
エクセルVBAで教えて頂きたいのですが?
Visual Basic(VBA)
-
7
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
8
Sheet2からオートフィルターで売上日を抽出した件数をカウントし、その件数をSheet1のセルB1
Visual Basic(VBA)
-
9
Excel VBA 同じ名前のフォルダがあれば作成したブックを格納するマクロをつくりたい
Visual Basic(VBA)
-
10
Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の
Visual Basic(VBA)
-
11
別シートから年齢別の件数をカウントしたい
Visual Basic(VBA)
-
12
vba 同じブック内での転記について
Excel(エクセル)
-
13
Excelでデータを抽出するに良い方法
Excel(エクセル)
-
14
VBAで列を削除
Visual Basic(VBA)
-
15
VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。
Visual Basic(VBA)
-
16
Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです
Visual Basic(VBA)
-
17
VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。
Visual Basic(VBA)
-
18
VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく
Visual Basic(VBA)
-
19
該当セルの値を別ブックのシート名と一緒であればコピーしてほしい
Visual Basic(VBA)
-
20
VBAチェックボックスで有効無効切り替えできるように
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
特定のPCだけ動作しないVBAマク...
-
5
メッセージボックスのOKボタ...
-
6
一つのTeratermのマクロで複数...
-
7
#defineの定数を文字列として読...
-
8
エクセルで特定の列が0表示の場...
-
9
ExcelのVBA。public変数の値が...
-
10
マクロ実行時、ユーザーフォー...
-
11
EXCELのVBAでRange("A1:C4")を...
-
12
ExcelVBAでPDFを閉じるソース
-
13
Excel VBAからAccessマクロを実...
-
14
TeraTermマクロの文字列結合
-
15
ソース内の行末に\\
-
16
VBAのIF分で時間指定の条件式の...
-
17
組んだマクロをメールで送る
-
18
ファイルが見つからない時、ス...
-
19
[初心者です]VBAで指定列か...
-
20
ピボットテーブルでの毎回可変...
おすすめ情報
公式facebook
公式twitter
ご教授いただいた内容で、If Cells(2, c).Value = Month(Worksheets(1).Range("A3")).Value Then Exit Forとしてみたところ、実行時エラー424 オブジェクトが必要です。とエラーになりました。どこを変更したらよいか教えていただけませんでしょうか。よろしくお願いいたします。
If Cells(2, c).Value = Format(Month(Worksheets(1).Range("A2").Value), "m 月") Then Exit Forへ変更し、
Sheet1のA2セルを参照してマクロを実行したところ、Sheet2のT列へ転記されました。
Sheet1のA3セルを参照するとQ列の1月へ転記できるのですがこのちがいを解消するにはどのようにしたら良いか教えてください。
Sheet1のA3セルを参照してSheet2のQ列に転記できたこーどは、If Cells(2, c).Value = Worksheets(1).Range("A3").Value Then Exit Forになります。
1.Sheet2のH2:S2は4月~3月が表示されていますが、これは
①実際に4月~3月の文字が設定されている。
2.Sheet1のA3に設定される値は
①2023/3/1 等の日付である。