|
(質問1に関して)
> インプットボックスで、作業する月を入れて下さい ok キャンセル
> 月を入力するとその月に金額が表示されるVBAを作って頂きたいのです。
作って下さいではなく、詰まっている点を具体的に質問したほうがいいでしょう。
4月以降と未満で場合分けすることになりますが、
月に応じて、何列目に書き込むかは組み立てることができますよね。
金額を入れる箇所は、次のような考え方をもとにして、できると思います。
Dim mat1 '氏名を入れる配列
Dim mat2 '金額を入れる配列
With Sheets("xxxx")
mat1 = .Range("a2", .Range("a" & .Rows.Count).End(xlUp)).Value
ReDim mat2(1 To UBound(mat1, 1), 1 To 1)
'''' mat2の値は、今と同じ手法で、Dictionaryとmat1の値を使って算出
Cells(2, その月に相当する列番号).Resize(UBound(mat2, 1), 1) = mat2
End With
(質問2に関して)
> MsgBox”集計が終わりました”は私が調べてコードを入れます。
> 集計が終わりましたとのメッセージの後に、別のシート名:入力伝票 のシートに
> 戻って欲しいのです。 Sheets("集計").Select Range("O155").Selectとコードを
> 入れてもエラーになるのです、それが何故かわからないのです(色々試したのですが)
最初からあなたが調べて、コードを示してください。
また、エラーは、どの行で、どんなエラーが出るのかを示して、質問して下さい。
[考え方のヒント]
そのコードが標準モジュールに書かれているか、シートモジュールに
書かれているかによって状況が変わります。多分後者でないですか?
Range("O155").Select はシートモジュールの書かれたシートのO55を選択に
行きます。
しかし、アクティブなのは別のシートなのでエラーになるのでしょう。
標準モジュールに書くか、セル範囲には、逐一、シート名を修飾して扱うことを
お勧めします。
なお、他人の発言は、行頭に > をつけて引用することで十分で、
ご自分の発言に逐一ハンドルネームを書く必要はありません。
このスタイル(他人の発言との区別は "> " の有無だけ)で統一してもらえば、
もっと読みやすくなります。
# 子供じゃないので、自分のことをファーストネーム(に相当する名詞)で呼ぶのは
# 違和感がありました。
# そのことに気づかないのは、何か、別の事情でもあるんでしょうか?
|
|