
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.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 は数値型で宣言された物。
と文字を連結させることで文字列になるしね。
No.3
- 回答日時:
こちら無理でした?
見た限りでは可能なんじゃないかなと思いましたが、可不可の判定もないようですし。
No.2
- 回答日時:
SheetsではなくWorksheetsを使ってあげればよいです。
Sheets("1月")
↓
strMonth="1月"
Worksheets(strMonth)
strMonthはString型の変数でシートを参照する前にシート名をセットしてください。
Sheets("1月")
↓
strMonth="1月"
Worksheets(strMonth)
strMonthはString型の変数でシートを参照する前にシート名をセットしてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセル:VBAで月変わりで、自動でシートを選択したい
Excel(エクセル)
-
VBA シート名を先月の名前にしたい
Excel(エクセル)
-
特定の文字を含むシートだけマクロ処理をしたい
Visual Basic(VBA)
-
-
4
VBAで自動集計(特定セルコピー月ごとに値貼り付け)したい。
Visual Basic(VBA)
-
5
VBAで先月、先々月を求める方法
Visual Basic(VBA)
-
6
マクロを特定の複数シートで実行する方法
Excel(エクセル)
-
7
VBA 空白行に転記する
Visual Basic(VBA)
-
8
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
9
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
10
セルの値と同じ名前のシートをアクティブにするには?
Excel(エクセル)
-
11
VBA 存在しないシートを選択した時にエラーメッセージを表示するには?
Visual Basic(VBA)
-
12
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
13
エクセルVBA:毎月名前が変わるエクセルファイルを毎月異なるフォルダから開く
その他(コンピューター・テクノロジー)
-
14
エクセルで、月によって参照するシートを自動的に変える関数
Excel(エクセル)
-
15
名前をつけて保存した後、元のファイルに戻るには
その他(コンピューター・テクノロジー)
-
16
指定文字が含まれるシートを削除したいです
Visual Basic(VBA)
-
17
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
18
【VBA】シート上の複数のチェックボックスのうちどれか一つでも変更した場合のイベント
Visual Basic(VBA)
-
19
Excelマクロで毎月のデータ一覧から、人ごとに転記したい
Excel(エクセル)
-
20
指定した日付の範囲内でデータを転記したい。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelマクロのエラーを解決した...
-
実行時エラー1004「Select メソ...
-
【ExcelVBA】全シートのセルの...
-
excelのマクロで該当処理できな...
-
エクセルのシート名変更で重複...
-
特定の文字を含むシートだけマ...
-
シートが保護されている状態で...
-
EXCEL VBAで複数シートから該当...
-
ExcelのVBAを使い、複数シート...
-
【VBA】色のついたシート名を取得
-
VBAで指定シート以外の選択
-
同じ作業を複数のシートに実行...
-
【エクセルVBA】「Protect User...
-
Excel VBA での計算について…
-
ユーザーフォームに入力したデ...
-
VBA ユーザーフォーム上のチェ...
-
【エクセル】オプションボタン...
-
VBA 入力月で該当シートを選択...
-
【Excel VBA】Worksheets().Act...
-
【VBA】全ての複数シートから指...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
エクセルVBA Ifでシート名が合...
-
実行時エラー1004「Select メソ...
-
VBA 存在しないシートを選...
-
エクセルで通し番号を入れてチ...
-
VBA 検索して一致したセル...
-
XL:BeforeDoubleClickが動かない
-
VBA 指定した回数分、別シート...
-
VBAマクロでシートコピーした新...
-
シートが保護されている状態で...
-
ブック名、シート名を他のモジ...
-
【VBA】全ての複数シートから指...
-
別のシートから値を取得するとき
-
ExcelのVBAのマクロで他のシー...
-
Excel チェックボックスにチェ...
おすすめ情報
お世話になります。
ご回答ありがとうございます。
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月シートを自動的に選んで転記する事がしたいです。
入力日は、原則今日のみで遡るもしくは未来の日付はないです。
毎日の作業を想定
ご教示頂けますようお願い申し上げます。