- ベストアンサー
エクセルについての質問です。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
苦手なのでまったく洗練されていないマクロですが(^^; Sub A地点からB地点まで() Dim 終わり As Long Dim n As Long Dim A As Long Dim B As Long 終わり = WorksheetFunction.CountA(Range("C7:C65536")) A = 7 Range("C7").Select Selection.End(xlDown).Select B = Selection.Row Range("B" & A & ":B" & B) = Selection.Value ActiveWorkbook.Names.Add Name:="範囲1", _ RefersToR1C1:="=R" & A & ":R" & B & "C2" For n = 2 To 終わり A = Selection.Row + 1 Selection.End(xlDown).Select B = Selection.Row Range("B" & A & ":B" & B) = Selection.Value ActiveWorkbook.Names.Add Name:="範囲" & n, _ RefersToR1C1:="=R" & A & ":R" & B & "C2" Next n End Sub 名前の定義をつけてみたものの何の必要があるのか。。。
その他の回答 (4)
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
#3です。やっぱ マクロ苦手 連続データはエラーが出た(T.T) 下記修正。といっても、もっとずっと効率的なマクロが回答されるかと思います。(^^; Sub A地点からB地点まで() Dim 終わり As Long Dim n As Long Dim A As Long Dim B As Long 終わり = WorksheetFunction.CountA(Range("C7:C65536")) A = 7 Range("C7").Select If Selection.Offset(1) = "" Then Selection.End(xlDown).Select Else Selection.Offset(1).Select End If B = Selection.Row Range("B" & A & ":B" & B) = Selection.Value ActiveWorkbook.Names.Add Name:="範囲1", _ RefersToR1C1:="=R" & A & ":R" & B & "C2" For n = 2 To 終わり A = Selection.Row + 1 If Selection.Offset(1) = "" Then Selection.End(xlDown).Select Else Selection.Offset(1).Select End If B = Selection.Row Range("B" & A & ":B" & B) = Selection.Value ActiveWorkbook.Names.Add Name:="範囲" & n, _ RefersToR1C1:="=R" & A & ":R" & B & "C2" Next n End Sub
お礼
ご丁寧にありがとうございました! 大変参考になりましたので、BAとさせて頂きました!!
- hana-hana3
- ベストアンサー率31% (4940/15541)
集計方法が解りませんが、名前を使うならこんな感じです。 Range("範囲1").Copy Range("範囲2")
お礼
ありがとうございました! シンプルで、すぐに実践できました!
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 単純に画像だけ見て投稿しているので、大きく外しているかもしれません。 VBAではなく、関数になってしまいますが・・・ ↓の画像でB22セルに =IF(COUNTA($C$7:$C$22)=0,"",INDEX($C$7:$C$22,LARGE(IF($C$7:$C$22<>"",ROW($A$1:$A$16)),COUNTIF($C$22:C22,"<>"&"")))) これは配列数式になってしまいますので、 この画面からコピー&ペーストしただけではエラーになると思います。 B22セルに貼り付け後、F2キーを押す、またはB22セルをダブルクリック、または数式バー内で一度クリックします。 編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定します。 数式の前後に{ }マークが入り配列数式になります。 このB22セルを上方向にB7セルまでオートフィルでコピーすると 画像のような感じになります。 尚、的外れなら読み流してくださいね。m(__)m
お礼
ご丁寧にありがとうございました! 参考にさせていただきます^^
- Cupper
- ベストアンサー率32% (2123/6444)
OFFSET関数を使うなら「名前の定義」は必要ないと思う。
お礼
ありがとうございます。 当方、初心者なため、基本的なことを理解しておりませんでした。。 勉強になりました。
お礼
ありがとうございました! 大変参考になり助かりました!