
他のシートからコピーする下記マクロで貼付け位置を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を探す
今、見られている記事はコレ!
-
隣の枝がはみ出してきたら切ってもいい?最もやってはいけないことは?
「隣の木が越境してきて困るが、勝手に切ってはいけないと聞くし…」そう思っている方も多いだろう。実は、2023年4月1日に民法が改正され、この「越境枝」のルールが大きく変わった。 教えて!gooでも「境界から出て...
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のPCだけ動作しないVBAマク...
-
ExcelVBAでPDFを閉じるソース
-
Excelのセル値に基づいて図形の...
-
エクセルで特定の列が0表示の場...
-
Excel_マクロ_現在開いているシ...
-
一つのTeratermのマクロで複数...
-
ダブルクリックで貼り付けた画...
-
wordを起動した際に特定のペー...
-
Excel マクロでShearePoint先の...
-
エクセルで別のセルにあるふり...
-
Word VBA 表中の空白行を削除す...
-
TeraTermのマクロで制御文字の...
-
UWLSの記録でマクロを作成し使...
-
Excelのマクロボタンをダブルク...
-
ExcelのVBA。public変数の値が...
-
Excelマクロで印刷設定
-
ピボットテーブルでの毎回可変...
-
TeraTermマクロの文字列結合
-
時間差を求めるマクロコードを...
-
特定文字のある行の前に空白行...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
一つのTeratermのマクロで複数...
-
メッセージボックスのOKボタ...
-
Excel・Word リサーチ機能を無...
-
ExcelのVBA。public変数の値が...
-
Excel_マクロ_現在開いているシ...
-
Excel マクロ VBA プロシー...
-
TERA TERMを隠す方法
-
エクセルに張り付けた写真のフ...
-
Excelのセル値に基づいて図形の...
-
エクセルで縦に並んだデータを...
-
Excel マクロでShearePoint先の...
-
特定文字のある行の前に空白行...
-
ExcelVBAでPDFを閉じるソース
-
ソース内の行末に\\
-
Excel VBAからAccessマクロを実...
-
wordを起動した際に特定のペー...
-
エクセルで別のセルにあるふり...
-
UWLSの記録でマクロを作成し使...
おすすめ情報
ご教授いただいた内容で、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 等の日付である。