VBAのコードについて
入力シートより「1月」シートに転記をしています。
今後は、1月シートでなく月毎(1月・2月・3月.etc...)に入力日を基準として該当シートに転記をしたいと思っていますが、どの様に変更すればいいか参考になりそうなものが見当たりません。
以下が、現在作成中。
Dim i
For i = 4 To Sheets("1月").Range("A10000").End(xlUp).Row + 1
If Sheets("1月").Range("D" & i).Value = "" Then
'Familyから1月に転記
Sheets("1月").Range("D" & i).Value = Sheets("Family").Range("B7").Value
Sheets("1月").Range("E" & i).Value = Sheets("Family").Range("M16").Value
'日付
Sheets("1月").Range("B4").Value = Date
Sheets("1月").Range("B" & i).Value = Date
Exit For
End If
Next 'Familyから転記した内容を消す
Range("B7").MergeArea.ClearContents
Range("B19:R42").ClearContents
'メッセージ
MsgBox "売上登録しました"
("1月")の部分を変えて対応できればと考えておりますが、ご教示いただければ幸甚です。
No.2
- 回答日時:
SheetsではなくWorksheetsを使ってあげればよいです。
Sheets("1月")
↓
strMonth="1月"
Worksheets(strMonth)
strMonthはString型の変数でシートを参照する前にシート名をセットしてください。
Sheets("1月")
↓
strMonth="1月"
Worksheets(strMonth)
strMonthはString型の変数でシートを参照する前にシート名をセットしてください。
No.3
- 回答日時:
こちら無理でした?
見た限りでは可能なんじゃないかなと思いましたが、可不可の判定もないようですし。
No.4ベストアンサー
- 回答日時:
こんにちは
「入力日」というのが、今日のことなのか、特定の日として「入力日」が存在するのか不明ですが、とりあえずシリアル値で存在するものとして・・・
以下の例は、
・入力日から「半角数字+"月"」としてシート名に変換
・シートの存在をチェック
・シートが存在すれば、シートオブジェクトを変数に代入
する例です。
dt = DateValue("2021/1/18") ' 仮の「入力日」を設定
'dt = Date ' 「入力日」が今日の意味ならこちらを使用
sName = Format(dt, "m月") ' 日付からシート名を作成
' シートが存在するかチェック
If Evaluate("iserror(" & sName & "!A1)") Then
MsgBox "対応シートがありません" ' シートが無い場合の処理
Else
Set sh = Worksheets(sName) ' シートがあれば変数に代入
End If
ご参考にでもなれば・・・
No.5
- 回答日時:
とある入力作業を行なう日に『〇月のシートに対して』って事をしたいのなら(月初めとかは当月ではなく前月でって場合もあり得るし)、
実は奥が深いInputBox
http://officetanaka.net/excel/vba/tips/tips37.htm
最初に何月のシートを対象としたいのか?を入力させるようにしては如何?
ユーザーフォームを使っているのならComboboxなどで選択って方法もありかもだけど、この場合そうでもないみたいなのにわざわざ使うのも何ですしね。
メソッドの方ならTYPEで数値も選べるので数値入力して貰い、その後に
Worksheets(i & "月")
⇒変数:i は数値型で宣言された物。
と文字を連結させることで文字列になるしね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) vba userformで漢字を全角カタカナに 2 2022/07/24 15:38
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Excel(エクセル) マクロで行を追加、削除すると行位置がずれますが、解決方法はありませんか?。 5 2022/05/28 16:03
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) 他のシートからコピーする下記マクロで貼付け位置をWorksheets(1).Range("A3")の 8 2023/01/30 18:48
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- Visual Basic(VBA) 前回質問の続きになりますが、下記マクロでシート1からシート2の抽出項目セルB3「りんご」とセルC2「 2 2022/12/02 17:37
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
エクセル:VBAで月変わりで、自動でシートを選択したい
Excel(エクセル)
-
VBAでセルに入っている日付をシート名にする
Excel(エクセル)
-
VBAで先月、先々月を求める方法
Visual Basic(VBA)
-
-
4
エクセルで、月によって参照するシートを自動的に変える関数
Excel(エクセル)
-
5
VBA シート名を先月の名前にしたい
Excel(エクセル)
-
6
エクセルのVBAで日付を検索し転機したい
Visual Basic(VBA)
-
7
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
8
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
9
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
10
VBAでシートコピー後、シート名が重複している時の処理
Access(アクセス)
-
11
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
12
別のシートから値を取得するとき
Visual Basic(VBA)
-
13
excel vbaで日付一致の行にデータ転記
Excel(エクセル)
-
14
excelのマクロで該当処理できなければ飛ばして進むにはどうすればよいのでしょうか
Visual Basic(VBA)
-
15
VBユーザーフォームで時間入力
Visual Basic(VBA)
-
16
特定の複数のシートに同じ処理をさせたい
Excel(エクセル)
-
17
VBA 別シートの同じ日付の欄に値を貼付け
Excel(エクセル)
-
18
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
19
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
20
VBAでセル入力の数式に変数を用いたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
同じ作業を複数のシートに実行...
-
VBAで大量のファイルをシート名...
-
【ExcelVBA】全シートのセルの...
-
Excel VBA 複数行を数の分だけ...
-
ブック名、シート名を他のモジ...
-
ユーザーフォームに入力したデ...
-
エクセルのマクロについて教え...
-
実行時エラー1004「Select メソ...
-
XL:BeforeDoubleClickが動かない
-
ExcelのVBAを使い、複数シート...
-
IFステートの中にWithステート...
-
【ExcelVBA】動的にボタン、ボ...
-
エクセルのマクロでアクティブ...
-
VBAで指定シート以外の選択
-
エクセルのシート名変更で重複...
-
実行時エラー'1004': WorkSheet...
-
セルの値によって、シート見出...
-
VBA ユーザーフォーム上のチェ...
-
Excel VBA マクロ 先頭行の固定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
同じ作業を複数のシートに実行...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
ExcelVBA シート名を複数セルか...
-
XL:BeforeDoubleClickが動かない
-
実行時エラー'1004': WorkSheet...
-
VBA 存在しないシートを選...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ブック名、シート名を他のモジ...
-
ExcelのVBAのマクロで他のシー...
-
【Excel VBA】Worksheets().Act...
-
エクセルのシート名変更で重複...
-
特定の文字を含むシートだけマ...
-
シートが保護されている状態で...
-
Excel マクロについての相談
-
VBA 検索して一致したセル...
おすすめ情報
お世話になります。
ご回答ありがとうございます。
VBA初心者で言葉足らずで申し訳ございません。
入力日=今日
PCの年月日を起点。
入力シート(会計伝票)
上記シートで記載した該当箇所を1月〜12月(売上管理)まで作成した12sheetに転記したいです。
尚、入力シート(会計伝票)と1月〜12月のsheetは同ファイル。
その日にお会計した入力シート(会計伝票)を登録ボタンを押したら該当月のシートに転記させたいです。
今日が2021年1月18日 → 1月シート
今日が2021年2月18日 → 2月シート
今日が2021年7月11日 → 7月シート
2021年1月18日等はPCの右下に出ていると年月日で判断して1月〜12月シートを自動的に選んで転記する事がしたいです。
入力日は、原則今日のみで遡るもしくは未来の日付はないです。
毎日の作業を想定
ご教示頂けますようお願い申し上げます。