私はVBA for Excelの比較的新しいプログラマーであり、仕事関連のプロジェクトの助けを求めています。マクロを使って会計年度を更新する
手元の問題は、入力ボックスにユーザーが指定した任意の今後の会計年度の日付エントリを更新してしまう予算追跡システム、用の更新ルーチンの設計に関するものである:
Sub Putittogether()
On Error Resume Next
Dim xMonthNumber As Integer
Dim xMonthNumber2 As Integer
Dim xYearInput As Integer
Dim xCell As Range
Dim xCell2 As Range
Dim xMonthYear As Range
Dim xMonthNextYear As Range
Set xMonthYear = Range("B4:B12")
Set xMonthNextYear = Range("B1:B3")
xYearInput = InputBox("Please enter year:")
For Each xCell In xMonthYear
xCell = xYearInput
For xMonthNumber = 4 To 12
Range("B" & xMonthNumber).NumberFormat = "General"
Range("B" & xMonthNumber) = MonthName(xMonthNumber, True) & xCell
For Each xCell2 In xMonthNextYear
xCell2 = xYearInput + 1
For xMonthNumber2 = 1 To 3
Range("B" & xMonthNumber2).NumberFormat = "General"
Range("B" & xMonthNumber2) = MonthName(xMonthNumber2, True) & xCell2
Next xMonthNumber2
Next xCell2
Next xMonthNumber
Next xCell
End Sub
マクロは今年の4月から翌年の3月にかけて二重ループになります。
私は2つの場所で問題にぶつかります:私が使っている方法を使って、B列の範囲を1-12行に厳密に反映させる必要があり、他の行は出力に問題を引き起こします理由は分かりません。
2番目の問題は、毎月トラッキングテーブルを取得していて、ヘッダー行(つまり、最初のデータ行をB2に移動)があるテーブルでこのマクロを実行しようとすると、どのように私はそれを別の範囲で動作させるのですか?
ご協力いただきありがとうございます。
@INOPIAE申し訳ありませんが、あなたの答えを見ていない... 2つの大きな心!私はOPの行の質問を手助けするために純粋にそれを保つつもりです。 – Ambie
ここで提出したバージョンを書き込む前に、DateAddメソッドを使用していましたが、範囲全体のループの最後の値を出力していたという問題があり、その年を整数として扱い、毎月一緒に置いてください。日付データタイプは当時の私の心を邪魔しませんでした... 私たちが見てきたように、あなたとイノピアのアプローチはかなり洗練されています。 ありがとうございました。大変感謝しています。 – quadrature