事前にお手伝いしていただきありがとうございます。私は一日だけでなく、月と年を気にします。各ループは動的セット内の最初の変数に対してのみ実行されます
Data Min Date Max Date
a 4/10/1985 10/30/2012
b 4/1/1996 11/1/2010
c 4/1/1997 11/1/2010
d 4/1/1998 11/1/2010
と列Gにおける最大の日付に分から毎月自動入力、およびこのような列H中のDを介して関連するデータ列Aを移入:私は(大佐A、B、C)は、このデータを利用したいです。
(Col.H) (Col.G)
a 4/10/1985
a 5/10/1985
a 6/10/1985
a 7/10/1985
a 8/10/1985
だから、あなたは毎月のオートフィルのすべて、Cのオートフィル全てをBのすべてを自動入力し、それに先行するA、B、C、Dの値で、Dのすべてを自動入力します。
私のコードは今のように見えますが、それは他の3つのデータポイントではなく、aのためのオートフィルです。
Dim Summary As Worksheet
Dim DataCell As Range
Dim DataRange As Range
Dim SummaryLastRow As Range
Dim StartDate As Date
Dim EndDate As Date
Dim NoDays As Integer
Set Summary = Worksheets("Summary")
Set SummaryLastRow = Summary.Range("G" & Rows.Count).End(xlUp).Rows
Set DataRange = Summary.Range(Summary.Range("A2"), Summary.Range("A" & Rows.Count).End(xlUp).Rows)
On Error Resume Next
For Each DataCell In DataRange
StartDate = DataCell.Offset(0, 1).Value
EndDate = DataCell.Offset(0, 2).Value
NoDays = EndDate - StartDate + 1
If IsEmpty(SummaryLastRow.Offset(1, 0)) Then
SummaryLastRow.Offset(1, 0) = StartDate
SummaryLastRow.Offset(1, 0).Resize(NoDays).DataSeries Rowcol:=xlColumns, Type:=xlChronological, Date:= _
xlMonth, Step:=1, Stop:=EndDate, Trend:=False
Range(SummaryLastRow.Offset(1, 0), SummaryLastRow.Offset(1, 0).End(xlDown)).Offset(0, -1).Value = DataCell
End If
Next DataCell
ご協力いただければ幸いです!ありがとうございました!
最初に「On Error Resume Next」を再度実行し、エラーがどこにあるかを教えてください。 –
FWIW - Set SummaryLastRow = Summary.Range( "G"&Rows.Count).End(xlUp).Rows'のようなステートメントに '.Rows'を含めるのはなぜですか?単一のセルの 'Rows'プロパティは、あなたが始めた単一のセルを返すだけなので、それを使用するのは無意味です。 – YowE3K
OPはそれらの '.Rows'を削除しなければならないと思うし、うまくいくはずです。 SummaryLastRowで起こりうる問題は、ループ内を決して移動しません。 'Set SummaryLastRow ='行をForループの中に移動します。 – PatricK