[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『F5から最終列まで連番を振る』(QPちゃん)
こんにちわ。
F5から最終列まで連番を振りたいです。
下記のリストの場合F5からL5まで連番を振られるようにしたいです。
F列から最終行までの間は必ず各列のどこかの行に数字が入っています。
宜しくおねがいします。
F G H I J K L M
8
25
3
13
29
5
39 2
16 42 99 160 160 142 18 160 160
< 使用 Excel:Excel2007、使用 OS:Windows7 >
アップ後のレイアウト、自分で確かめてみましたか? で、アップされたレイアウトで QPちゃん さんが質問している内容って、QPちゃん さん自身が 目で見てわかりますか?
>>下記のリストの場合F5からL5まで
まったくわかりませんよねぇ。
アップされたイメージで、どこにある、どの数字が元々あった数字で、どのセルのどの数字が、振られた連番ですか?
そもそも、 F5からL5まで と、5行目だけの質問文になっていますが、アップされたレイアウトは 何行もデータがありますねぇ? (しかも、どこが 5行目なのかがさっぱりわかりません)
(β) 2016/06/27(月) 11:15
あとからマクロで作れと言い出してマクロでないものは無視なので回答削除。 (ねむねむ) 2016/06/27(月) 11:25
AからDは端折っています。
カタカナで書いてある部分をマクロで実行したいです。
F5から最終列(この場合はL5まで)
宜しくおねがいします。
F G H I J K L M
1| 2| 3| 4| 5| イチ ニ サン ヨン ゴ ロク ナナ 6| 8 7| 25 8| 3 9| 13 10| 29 11| 5 12| 39 2 13| 16 14| 42 15| 99 160 160 142 16| 18 160 160 (QPちゃん) 2016/06/27(月) 11:55
レイアウト要件がよくわかりませんが以下だとします。
・シート上にはどこに(どの列から)データがあるかどうかはわからないけど、とにかくデータがある。 ・そのデータの内、6行目より上にデータがあっても、それは無視。6行目から下のデータをチェック。 ・始まりの列から順番に右にチェック。何かデータがあったとしても数字が、その列になければ、そこでおしまい。 ・すべて空白でも、おしまい。 ・結果は 5行目に書きこむ。(もし、5行目に何か書かれていたとしても、それは上書きされる)
実際には、もっとシンプルな要件なのかもしれませんが、不明だったので、このような面倒くさい判定をしています。 もし、シンプルな要件で、それが説明されればコードも、もっとシンプルになります。
Sub Test() Dim r As Range Dim col As Range Dim c As Long Dim x As Long
With ActiveSheet.UsedRange Set r = .Cells If .Row < 6 Then Set r = .Offset(6 - .Row).Resize(.Rows.Count - (6 - .Row)) End If End With
r.Offset(-1).Resize(1).ClearContents
For Each col In r.Columns If WorksheetFunction.Count(col) = 0 Then Exit For x = x + 1 col.Cells(1).Offset(-1).Value = x Next
End Sub
(β) 2016/06/27(月) 12:28
↑ あぁ、A〜E には何か値があるかもしれない。でもそれは無視して、あくまで F列から? であれば、アップしたコードでは具合悪いですから、後ほど、改訂版をアップします。
(β) 2016/06/27(月) 12:30
改訂版です。
Sub Test2() Dim r As Range Dim col As Range Dim c As Long Dim x As Long
With Range("A1", ActiveSheet.UsedRange) Set r = .Offset(5, 5).Resize(.Rows.Count - 5, .Columns.Count - 5) End With
r.Offset(-1).Resize(1).ClearContents
For Each col In r.Columns If WorksheetFunction.Count(col) = 0 Then Exit For x = x + 1 col.Cells(1).Offset(-1).Value = x Next
End Sub
(β) 2016/06/27(月) 12:33
With sh1 .Range("F5", .Cells(5, .UsedRange.EntireColumn.Column + .UsedRange.EntireColumn.Columns.Count - 1)).Formula = "=Column()-5" End With (???) 2016/06/27(月) 14:24
ありがとうございます。
1から10まで説明しないといけないところを6から10ぐらいしか書き込んでないにも関わらず
理解してくださってありがとうございます。
今後、気を付けます。
(QPちゃん) 2016/06/27(月) 14:52
回答してくださりありがとうございます。
当方、業務中のため返信がおくれてしまいました。
申し訳ありません。
何度か(ねむねむ)さまに回答していただいた事を活かさせていただいております。
とても助かりました。ありがとうございました。
(QPちゃん) 2016/06/27(月) 14:57
できました!
ありがとうございました。
(QPちゃん) 2016/06/27(月) 15:19
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.