[[20180313100553]] 『最終列の1つ上のセルの値を取得したい』(amaryllis) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『最終列の1つ上のセルの値を取得したい』(amaryllis)

AJ6から(6行目〜)はデータが入っていて、6行目の1つ上は項目などの見出しが列に並んでいます。
データがある最終列を取得したセルの右側のセルは空白になっています。
取得した列の1つ上のセルの値を取得しようと思い、下記のマクロにしてみましたが、エラーはないですがセルの値取得できませんでした。

Range("AJ6").End(xlToRight).Offset(-1, 0).Value

どこが悪かったでしょうか?

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 >データがある最終列

 空白セルとのことですが、数式の結果が長さ0の文字列だったり、見た目は
 空白でもスペースが入っている、ということはありませんか?
(カリーニン) 2018/03/13(火) 10:12

 >データがある最終列

 ↓の間違いでした。

 データがある最終列を取得したセルの右側のセル
(カリーニン) 2018/03/13(火) 10:13

Msgbox Range("AJ6").End(xlToRight).Offset(-1, 0).address

としてみて、意図したセルが取得できているか確認してみてください。
で、意図しないセルが取得できていないなら、
Endプロパティで想定したセルを検索出来ないと思いますので、
別のアプローチをすることになります。

AJ6がその行の最後の列とかなら、シートの最終列までジャンプしそうな気がします。
まずは操作対象のセル範囲を限定して、それから、その中で何番目の列が最終データなのかを、
考えた方が紛れが無いと思いますが。。。

(まっつわん) 2018/03/13(火) 10:30


まっつわんさん、回答をありがとうございます。

そのマクロでやってみたら、取得できました。

これで解決しました。
ありがとうございました。
(amaryllis) 2018/03/13(火) 10:58


セルの値ではなく、セルアドレスの取得が目的だった、ということですか?
(カリーニン) 2018/03/13(火) 11:24

カリーニンさん、回答をありがとうございます。

すみません。
本当の目的は、セルの値取得なんですが、
Range("AJ6").End(xlToRight).Offset(-1, 0).address

これを変数で代入してValueで取得する方法で解決しました。
(amaryllis) 2018/03/13(火) 12:16


 >Range("AJ6").End(xlToRight).Offset(-1, 0).address 
 > ↑ 
 >これを変数で代入してValueで取得する方法で解決しました。

 これって結局、

 >Range("AJ6").End(xlToRight).Offset(-1, 0).Value

 と同じことのような気がするのですが・・・。
 なにか私が勘違いしてる???
(カリーニン) 2018/03/13(火) 14:29

カリーニンさん、コメントをありがとうございます。

あ、同じでしたね。
私が、「おかしいな〜」と思ったのは、「Worksheets(2)」を含まれてなかったからWorksheets(2)以外のアクティブシートでテストしていたのが、原因でした。

どうもお騒がせてすみませんでした。
おかげですっきりしました。
(amaryllis) 2018/03/13(火) 15:48


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.