|
▼yata さん:
再度の質問、申し訳ありません。
計算式のマクロは、「’引き算をして別シートへ表示」の部位(つまりは、NEXTとWITH SHEETSの間)に打ち込めば好いのでしょうか?
>素人じゅうすけ さん おはようございます。
>昨日は親戚の法要で出かけていまして回答が遅くなりました。
>これから農作業をしなければなりませんので取り敢えず1項目だけ。
>
>
>>一項目につきましては、A列は「毎日の日付」が立てに順に記入されています。今回使う「重量」と「金額」は「毎日(其の他の列に毎日の重量・金額が記入された時点で)加算されています」。
>>例:
>>A列 B列 C列
>>日付 重量 金額
>>8月1日 300 450
>>8月2日 450 600
>>・
>>8月31日 990 1000
>>9月1日 1000 1200
>>9月2日 1150 1300
>>・
>>・
>>9月30日 2000 2200
>>10月1日 2100 2400
>>と、このような感じです。SHEET2に記入したいのは
>>例:
>>A列 B列 C列
>>日付 重量 金額
>>9月1日〜9月30日 1010 1200
>>です。(分かりますか?)また、A列に「項目」を入れて、
>>A列 B列 C列
>>日付 9月1日〜9月30日 10月1日〜10月31日
>>重量 1010 ・
>>金額 1200 ・
>>というふうにする方法もありましたら、教えてください。
>
>1項目
>重量 金額は日毎で累計されているのですね。それでしたら2つの行番号を取り出して利用すればよいです。
>●一つ目の回答
>Sheet2に 9/1〜9/30 1010 1200 と表示するのは→以下で出来ます。
>Sheet2にはA1,B1,C1にそれぞれフィールド名を入力して置いてください。
>
>Sub Test1()
> Dim R As Long 'データ範囲の行数
> Dim md1 As String, md2 As String '2つの入力された日付
> Dim r1 As Long, r2 As Long '取り出された行番号
> Dim 期間 As String
>
> R = UsedRange.Rows.Count
> md1 = InputBox("前月末日")
> md2 = InputBox("今月末日")
> '指定された日付に対するセルの行番号を取得する
>For Each Rng In Range(Range("A2"), Cells(R, 1))
> Select Case Rng.Value
> Case DateValue(md1)
> r1 = Rng.Row
> Case DateValue(md2)
> r2 = Rng.Row
> End Select
>Next
> 'もっと良い方法があるかもしれませんが 「月/日」形式で表示
> 'InputBox入力が「○月○日」でも可
> 期間 = Month(DateValue(md2)) & "/1" & "〜" & Format(md2, "m/d")
>
>'引き算をして別シートへ表示
>With Sheets("Sheet2")
> '使われている最終行番号
> EndRow = .Range("A65536").End(xlUp).Row
> .Cells(EndRow + 1, 1) = 期間
> .Cells(EndRow + 1, 2) = Cells(r2, 2) - Cells(r1, 2)
> .Cells(EndRow + 1, 3) = Cells(r2, 3) - Cells(r1, 3)
>End With
>End Sub
>
>●2つ目の回答
>日付 9/1〜9/30
>重量 1010
>金額 1200 と表示するには
>フィールド名をA1,A2,A3へ入力しておいて下さい
>
>'引き算をして別シートへ表示 から下を
>With Sheets("Sheet2")
> '1行目で使用されている列の一番右側の列番号を取得
> EndColumn = .Cells(1, 256).End(xlToLeft).Column
> .Cells(1, EndColumn + 1) = 期間
> .Cells(2, EndColumn + 1) = Cells(r2, 2) - Cells(r1, 2)
> .Cells(3, EndColumn + 1) = Cells(r2, 3) - Cells(r1, 3)
>End With
>に変更してください
|
|