[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『【VBA】A:A列に、重複する文字列の一番上の行を、選択したい』(neko)
VBA超初心者で、皆様のお力をお貸しくださいませ。
PCを全くわからない方に訳あって入力をしてもらうことになったので
私まで存在すら知らなかったVBAをいじり始めたところです。
とんちんかんな事を言うかもしれないので、その際はご指南お願い致します。
バージョンはExcel2003、2010の両方で使います。
A:年月 B:年月日 C:収入 D:支出 E:残高
2 2013年1月 2013/1/1 764 0 17864
3 2013年1月 2013/1/2 0 2000 15864
. . . . . .
. . . . . .
31 2013年1月 2013/1/31 15000 0 54184
32 2013年2月 2013/2/1 500 0 54684
33 2013年2月 2013/2/2 . . .
34 . . . . .
. . . . . .
と日々のデータが下に加わっていくシートです(金額は適当です)。
また、E列には残高を割り出す数式が入れてあって
3Eには=2E+3C-4D といった感じで3E以下セルにおいても
残高の1つ上のセルから、収入を足して、支出を引いた数式が入っています。
現在のエクセルの状況としては、
月締めの合計を出す際に、VBAで”2013年2月”などとA列で参照して、その対象月のみを
オートフィルタで抽出する物を作成し終えました。
ただ、今までの紙ベースの様式に合わせて作ることになっているため、
同シートの別の欄に先月分(ここでは1月分)の最終行の残高を
G1などに出さないといけないのです。
この表でいうとE31の数値を割り出したいのです。
オートフィルタで2月のみ見えているので、1月の最終行は
入力する方には全く見ることはできない状況です。
で、色々条件を照らし合わせたて考えた結果なのですが
”2013年2月”とどこかのセルに手入力でもして検索したとして
2月の一番初めの行(32行目ですね)を参照し、
E32(残高)+D32(支出)-C32(収入)と、先ほどの逆算をする事で
その上の行であるD31の残高の数値を割り出す
という結果を得たいのです。
最終行を取るなどはぼんやりとわかり始めたのですが
ちょっと最後のこの問題がどうにも解けなくてはじめてこちらに質問しました。
大変お手数おかけしますが、どうか助けてください。
これが解れば後は何とかなりそうですね。 BJ
Dim 一番目 As Long, 最後 As Long
With ActiveSheet.AutoFilter.Range
With .Resize(.Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible)
一番目 = .Cells(1).Row
With .Areas(.Areas.Count)
最後 = .Cells(.Count).Row
End With
End With
End With
MsgBox "一番目 " & 一番目 & "行" & vbLf & _
"最後行 " & 最後 & "行", , "オートフィルター使用表示セル"
BJさん、有難うございます。
頑張ってトライしてみます!
ひとまずお礼を申し上げます。(neko)
BJさん、成功しました! 本当に感謝します。 この質問を目に留めてくださって有難うございました。
お陰様でこの入力シートも完成します。
2週間、VBAに悶絶し、時にはうなだれながらw最後の最後まで悩んだこの残高表示。
今回は急遽この管理表に取り掛かりまして付け焼刃でやってきたので、
落ち着いたこれからはVBAの基礎から勉強しようと思えました。
気づけば明け方・・・
明日の業務までに間に合って本当に助かりました。
有難うございました!
(neko)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.