[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『数式による空白を無視して最終行を取得するマクロ』(NENE)
エクセル A1行は 項目名が入っています。(A〜BMまで)
計算式でA2セル以降、他のシートから情報を参照(=イコール)
しています。(他のシートの情報は 毎回行数に変動あり)
例えばA7セルまで情報が入っているとします。
A8セル以降は 空白です。
A2セル以降のセルに、もし参照するデータが0の場合、空白とするというIF関数で 空白表示””しています。
ですが A2の数式が500行まで入っていると A2行から文字が入っている行をすべてコピーしようとすると(CTRL+SHIFT+↓)空白の500行目迄範囲が指定されてしまいます。
計算式を設定していても
実際に文字が入力されている行(例では A7セル)を最終行として認識し、、そこからコピー
→ほかのシートの 最終行から下に 貼り付けするには
どのようにしたらよいでしょうか。
< 使用 Excel:Excel2013、使用 OS:Windows10 >
4行目まで実績があるので 1~4行目をコピーして他のシートの最終行から下に貼り付けしたいです
5行目以降も、計算式が入っています。
A列
1 〇
2 〇
3 〇
4 〇
5
6
7
(NENE) 2020/02/18(火) 15:19
おなじですよね。
(同じ人?) 2020/02/18(火) 16:42
数式による空白を無視した最終行番号ですよね?
これ ↓ Dim LastRW As Long LastRW = Columns("A").Find("*", , xlValues, , , xlPrevious).Row
(半平太) 2020/02/18(火) 17:26
Dim LastRW As Long LastRW = Columns("A").Find("*", , xlValues, , , xlPrevious).Row
で、最終番号を求めた後、
2行目〜最終行をコピーしたい場合 続けて記述は可能なのでしょうか。
初心者でして、申し訳ないですが教えて下さい。
(NENE) 2020/02/18(火) 18:36
Sub shiftData() Dim SrcWs As Worksheet Dim TgtWs As Worksheet
Set SrcWs = Sheets("こっちのシート名") '←正しいシート名にする Set TgtWs = Sheets("他のシート名") '←正しいシート名にする
SrcWs.Range("A2:BM" & SrcWs.Columns("A").Find("*", , xlValues, , , xlPrevious).Row).Copy TgtWs.Cells(TgtWs.Rows.Count, "A").End(xlUp).Offset(1).PasteSpecial xlPasteValuesAndNumberFormats
Application.CutCopyMode = False End Sub
(半平太) 2020/02/18(火) 19:37
| で、最終番号を求めた後
と、さらっと書いているのだが、コードの意味を理解しているんでしょうか。
結構、感動的といってはなんだが、ひねりがあるんだけどねえ。
行番号が判明した以降のコードは、
むしろ、自分でトライすべきことのような気がする。
(γ) 2020/02/19(水) 00:20
独り言さん
で、というのは誤解を招く接続詞でした。。
その記述の次に 続けたいのですが、という感じで書くべきでした。
気分を害されたと思います。
半平太さん 申し訳ありませんでした。
なかなかどこを調べてもわからず、焦りもありました。。
なるべく自分で調べてやってみます。
(NENE) 2020/02/19(水) 07:43
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.