Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3211 / 13644 ツリー ←次へ | 前へ→

【63540】範囲指定 初心者 09/11/16(月) 19:33 質問[未読]
【63544】Re:範囲指定 超初心者 09/11/17(火) 8:55 発言[未読]
【63545】Re:範囲指定 初心者 09/11/17(火) 10:17 質問[未読]
【63546】Re:範囲指定 ponpon 09/11/17(火) 10:32 発言[未読]
【63548】Re:範囲指定 初心者 09/11/17(火) 10:44 質問[未読]
【63550】Re:範囲指定 ponpon 09/11/17(火) 12:20 発言[未読]
【63553】Re:範囲指定 初心者 09/11/17(火) 13:57 質問[未読]
【63554】Re:範囲指定 ponpon 09/11/17(火) 14:06 発言[未読]
【63555】Re:範囲指定 初心者 09/11/17(火) 15:04 お礼[未読]

【63540】範囲指定
質問  初心者  - 09/11/16(月) 19:33 -

引用なし
パスワード
   下記の範囲指定の方法がわかりません。
すいませんがアドバイスお願いします。

B1:E10まで関数が入力されており、
関数で数字が飛んでくる設定になっています。

値は1行目から順番に入力され、
1行目のみ入力されている場合、1〜5行目まで入力されている場合などが
あります。

今回は数字が飛んできている部分のみ範囲指定し、
隣のシートに値のみコピーをしたいのですが、
B1から
Range("B1", ActiveCell.SpecialCells(xlLastCell)).Select
  Selection.Copy
で範囲指定をすると関数が入っている部分全てが範囲指定されてしまい、
貼り付け後のデータをテキスト形式で見るとゴミデータが入ってしまうため
困っています。

関数が入っていても、数字が飛んできている行まで範囲指定するには
どうすればいいでしょうか?

宜しくお願いします。

【63544】Re:範囲指定
発言  超初心者  - 09/11/17(火) 8:55 -

引用なし
パスワード
   ▼初心者 さん:
> 関数で数字が飛んでくる設定になっています。
どこから「飛んでくる」のでしょう?

> 〜数字が飛んできている行まで範囲指定する〜
「飛んできている」と「飛んできていない」状態の違いは何でしょうか?

とりあえず、

Dim myRange As Range

For Each myRange In Range("B1", ActiveCell.SpecialCells(xlLastCell))
  If myRange = "飛んできていない状態" Then Exit For
Next myRange

Range("B1", myRange).Select

こんな感じでしょうか。

【63545】Re:範囲指定
質問  初心者  - 09/11/17(火) 10:17 -

引用なし
パスワード
   超初心者さん
アドバイスありがとうございました。
ただ教えていただいたものだとうまくいきませんでした。
超初心者さんからの質問についてですが、
表は下記のようになっています。

表1 B1:E10

表2 G1:J10

表3 変換表

表1〜3はすべて1シート上にあります。

表1と表2は同じつくりになっていて、
入力者が表2に値を入力します。
入力を行うと、値が変換表で変換され(vlookup関数などで)
表1に値が飛ぶという仕組みになっています。

表2に値が入っていない場合は表1には数字が表示されないように
表1内のセルには関数が設定されてあります。

この表は伝票形式と考えていただければよく、
数字は上の行から順番に行が空く事なくつめて値を入力していく仕組みになっています。

今回は表1に数字が表示されている行まで範囲指定したいと考えています。

宜しくお願いします。

【63546】Re:範囲指定
発言  ponpon  - 09/11/17(火) 10:32 -

引用なし
パスワード
   ▼初心者 さん:
>表1 B1:E10
>
>入力を行うと、値が変換表で変換され(vlookup関数などで)
>表1に値が飛ぶという仕組みになっています。
>
>数字は上の行から順番に行が空く事なくつめて値を入力していく仕組みになっています。
>

こんなことが参考になるかもしれません。

Range("B1:E10").SpecialCells(xlCellTypeFormulas, 1).Select

【63548】Re:範囲指定
質問  初心者  - 09/11/17(火) 10:44 -

引用なし
パスワード
   ご回答ありがとうございました。
しかし

Range("B1:E10").SpecialCells(xlCellTypeFormulas, 1).Select

ではうまく範囲指定ができませんでした。

また 追加事項なのですが、
表はデフォルトが10行なのですが、
行の追加や削除される事があるため、
最終行が固定できない状態になっています。

すいませんが他に何かよい案があればアドバイスをお願いします。

【63550】Re:範囲指定
発言  ponpon  - 09/11/17(火) 12:20 -

引用なし
パスワード
   ▼初心者 さん:
>ご回答ありがとうございました。
>しかし
>
> Range("B1:E10").SpecialCells(xlCellTypeFormulas, 1).Select
>
>ではうまく範囲指定ができませんでした。
>

どんな数式が入っているか知りませんが、簡単な数式を入れて、試してみましたら、私の環境では、上記コードで数式のみは、選択されず、数値がはいっているところは選択されます。
 一般操作で、ジャンプ→セルの選択→数式→数値のみにチェックで、その範囲は
選択されますか?

【63553】Re:範囲指定
質問  初心者  - 09/11/17(火) 13:57 -

引用なし
パスワード
   > 一般操作で、ジャンプ→セルの選択→数式→数値のみにチェックで、その範囲は
>選択されますか?

で試したところ、表には数字のみではなく文字(例えば 年数や名称)なども含まれているため、値が入っている全てのセルが選択されていないのが原因だと思います。

数字以外の値にも範囲指定したい場合はどのようにすればよいですか?

また列によっては空白もあります。
(例 1行目に値は入っているが、C1セルは空白)

【63554】Re:範囲指定
発言  ponpon  - 09/11/17(火) 14:06 -

引用なし
パスワード
   ▼初心者 さん:
>今回は数字が飛んできている部分のみ範囲指定し、
>隣のシートに値のみコピーをしたいのですが、

と質問してましたが、

>で試したところ、表には数字のみではなく文字(例えば 年数や名称)なども含まれているため、値が入っている全てのセルが選択されていないのが原因だと思います。
>
>数字以外の値にも範囲指定したい場合はどのようにすればよいですか?

とおっしゃってます。

シートレイアウトを表示して、詳しく説明する方が、早いと思います。

【63555】Re:範囲指定
お礼  初心者  - 09/11/17(火) 15:04 -

引用なし
パスワード
   説明がうまくできておらず、すいませんでした。

今回はcount関数で行の数をカウントさせ、
行列の範囲指定をさせるやり方でうまくいきましたので
この方法でいこうと思っています。

色々とアドバイスをしていただきありがとうございました。

3211 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free