Excel VBA質問箱 IV

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

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


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

【44071】オートフィルを使った処理 ミーナ 06/11/2(木) 13:08 質問[未読]
【44073】Re:オートフィルを使った処理 Jaka 06/11/2(木) 13:30 発言[未読]
【44074】Re:オートフィルを使った処理 ミーナ 06/11/2(木) 13:55 お礼[未読]
【44092】Re:オートフィルを使った処理 yata 06/11/3(金) 19:22 発言[未読]
【44120】Re:オートフィルを使った処理 Ma 06/11/4(土) 21:13 発言[未読]
【44180】Re:オートフィルを使った処理 ミーナ 06/11/7(火) 14:04 お礼[未読]

【44071】オートフィルを使った処理
質問  ミーナ  - 06/11/2(木) 13:08 -

引用なし
パスワード
   いつもお世話になります。
コマンドボタンをクリックすると、A列の一番下のセルに
上のセルの番号に1を足した番号を入れます。

With Range("A3")
.AutoFill Range("A3", Range("A65536") _
.End(xlUp).Offset(1)), xlFillSeries
End With

上のコードを作ったのですが、この場合だと途中で行を削除して
1
2
8
9
こういった状態で実行すると、「10」にならずにすべてが変わって
1
2
3
4
5
と変わってしまいます。そうならずに、一つ上のセルからの続き番号にしたいのですが、どうすればいいのでしょうか?よろしくお願いいたします。

【44073】Re:オートフィルを使った処理
発言  Jaka  - 06/11/2(木) 13:30 -

引用なし
パスワード
   ▼ミーナ さん:
>コマンドボタンをクリックすると、A列の一番下のセルに
>上のセルの番号に1を足した番号を入れます。
>
>With Range("A3")
> .AutoFill Range("A3", Range("A65536") _
> .End(xlUp).Offset(1)), xlFillSeries
>End With
>
>上のコードを作ったのですが、この場合だと途中で行を削除して
>1
>2
>8
>9
↑どうやったらこうなるのかよくわかりません?
 連番の規則性とかあるのでしょうか?

推測だと、こういうことでしょうか?

With Range("A3").End(xlDown)
  .AutoFill .Resize(Range("A65536") _
  .End(xlUp).Offset(1).Row - .Row), xlFillSeries
End With

【44074】Re:オートフィルを使った処理
お礼  ミーナ  - 06/11/2(木) 13:55 -

引用なし
パスワード
   ▼Jaka さん:
>▼ミーナ さん:
>>コマンドボタンをクリックすると、A列の一番下のセルに
>>上のセルの番号に1を足した番号を入れます。
>>
>>With Range("A3")
>> .AutoFill Range("A3", Range("A65536") _
>> .End(xlUp).Offset(1)), xlFillSeries
>>End With
>>
>>上のコードを作ったのですが、この場合だと途中で行を削除して
>>1
>>2
>>8
>>9
> ↑どうやったらこうなるのかよくわかりません?
>  連番の規則性とかあるのでしょうか?
>
>推測だと、こういうことでしょうか?
>
>With Range("A3").End(xlDown)
>  .AutoFill .Resize(Range("A65536") _
>  .End(xlUp).Offset(1).Row - .Row), xlFillSeries
>End With

Jakaさん、いつもありがとうございます。また説明不足でした。
Range("A3")にはかならず1が入るという規則を作っています。
やってみたけどダメでした。もうちょっと考えてみます!

【44092】Re:オートフィルを使った処理
発言  yata  - 06/11/3(金) 19:22 -

引用なし
パスワード
   ミーナ さん こんばんは
こういうことですか
最終セルと1つ前の数値の差を基準にしてオートフィルをして、
1行だけデータを追加する。

Sub AutoFillTest()
With Sheets("Sheet1")
 Set 最終セル = .Range("A65536").End(xlUp)
 Set 基準セル = .Range(最終セル.Offset(-1), 最終セル)

 基準セル.AutoFill .Range(最終セル.Offset(-1), _
         最終セル.Offset(1)), xlFillSeries
End With
End Sub

【44120】Re:オートフィルを使った処理
発言  Ma  - 06/11/4(土) 21:13 -

引用なし
パスワード
   ▼ミーナ さん:
オートフィルでなければ
Sub test()
  With Sheets("sheet1")
   Set Lstv = .Range("A65536").End(xlUp)
   .Range("A65536").End(xlUp).Offset(1) = Lstv + 1
  End With
End Sub

ではダメですか?
下のような場合でも、必ず1つずつプラスされていきますが・・・





【44180】Re:オートフィルを使った処理
お礼  ミーナ  - 06/11/7(火) 14:04 -

引用なし
パスワード
   yataさん、Maさん、ありがとうございます。できました。
もっともっと勉強します。

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