エクセルで以下の事をしたいと考えていますが出来ません。
どなたか教えて下さい。
例として、
A列のセルに、●と◯と空白のセルがあります。
図示しますと以下のようになっています。
A
1
2
3 ◯
4
5
6 ●
7
8 ●
9
10
となっているものを
例えば、A1から数えて、A6にある●は5つ目にあるので、●を5に替える。
A8の●はA6から数えて、2つ目なので、●を2に替える。
A3にある◯は無視してそのままとしたのですが、
DO~ Loopステートメント
Sub 空白()
Dim i As Integer
i = 1
Range("A1").Select
Do Until ActiveCell.Offset(1)(ActiveCell = "●")
ActiveCell.Offset(1).Select
i = i + 1
If ActiveCell <> "" Then Exit Do
Loop
ActiveCell.Value = i
ActiveCell.Offset(1).Select
End sub
まで考えたのですが、◯を無視することと、変数iを初期化する方法が解りません。
よろしくお願いします。
No.4
- 回答日時:
「補足コメントについて」こんなのはいかがですか?
-------------------------------------------------------------------
Sub 一つ目プラス二つ目()
Dim 元 As Long
Dim 行 As Long
Dim 終 As Long
終 = Cells(Rows.Count, 1).End(xlUp).Row
For 行 = 終 To 1 Step -1
If Cells(行, 1).Value <> "" Then
If Cells(行, 1).Value <> "◯" Then
If 元 = 0 Then
Cells(行, 1).Value = 0
Else
Cells(行, 1).Value = 元 - 行
End If
元 = 行
End If
End If
Next
End Sub
-------------------------------------------------------------------
No.3
- 回答日時:
No.2 の補足コメントについて
一つ目
一番下の「●」は「0」にしてカウントするのでしょうか?
二つ目
「●」や「数字」はそれぞれ別にカウントするのでしょうか?
三つ目
「Cells(Rows.Count, 1)」の「1」をその列番号(左から何列目)にする
「Cells(行, 1)」の「1」をその列番号にする
再度、迅速にご教示いただきましてありがとうございます。
>一番下の「●」は「0」にしてカウントするのでしょうか?
そのとおりです。
>二つ目
「●」や「数字」はそれぞれ別にカウントするのでしょうか?
「数字」は「●」と同じとお考え下さい。数字が間違っている場合があるかもしれませんので、カウントをし直すということで、「●」と同じです。
>三つ目は、その通りさせていただきます。
何度もになりますがよろしくお願い申し上げます。
No.2
- 回答日時:
こんなのはいかがでしょうか?
-------------------------------------------------------------------
Sub 空白()
Dim 元 As Long
Dim 行 As Long
Dim 終 As Long
元 = 1
終 = Cells(Rows.Count, 1).End(xlUp).Row
For 行 = 1 To 終
If Cells(行, 1).Value = "●" Then
Cells(行, 1).Value = 行 - 元
元 = 行
End If
Next
End Sub
-------------------------------------------------------------------
No.1
- 回答日時:
書き換えてみました。
これで、どうでしょうか。Sub 空白()
Dim i As Integer
Dim maxrow As Long
Dim row As Long
maxrow = Cells(Rows.Count, 1).End(xlUp).row 'Active sheet A列の最大行取得
i = 0
For row = 1 To maxrow
If Cells(row, "A").Value = "●" Then
Cells(row, "A").Value = i
i = 0
End If
i = i + 1
Next
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) ExcelVBA No.を自動連番で設定をしながらデータ入力をしたい 2 2022/08/03 18:19
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Visual Basic(VBA) ExcelVBAでDo Until loopのネスト、IF文を使って一致する物と一致しない物としたい 11 2022/12/24 17:46
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel関数】UNIQUE関数で"0"...
-
エクセルで特定の文字列が入っ...
-
エクセル 上下で列幅を変えるには
-
エクセルのマクロで意図しない...
-
アクティブになっている行をマ...
-
excelのデータで色つき行の抽出...
-
Excel 時刻の並び替え
-
Excel グラフのプロットからデ...
-
セルの色によって条件文をつけ...
-
VBAで色の付いているセルの行削除
-
Excelでカタカナ・ひらがな・英...
-
エクセル マクロ オートフィ...
-
Excel VBA アクティブセルから...
-
Excel2007で、指定範囲の行高さ...
-
[EXCEL]ボタン押す→時刻が表に...
-
サイズの違うセル 並べ変え
-
エクセルマクロ オートSUM(合...
-
特定の文字がある行以外を削除...
-
AのセルとB行を比較して、一致...
-
電話番号の入力方式が違うデー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の文字列が入っ...
-
エクセル マクロ オートフィ...
-
【Excel関数】UNIQUE関数で"0"...
-
[EXCEL]ボタン押す→時刻が表に...
-
結合されたセルをプルダウンの...
-
エクセル マクロで数値が変っ...
-
Excel グラフのプロットからデ...
-
AのセルとB行を比較して、一致...
-
エクセル 上下で列幅を変えるには
-
Excel ウインドウ枠の固定をす...
-
特定の文字がある行以外を削除...
-
excelのデータで色つき行の抽出...
-
エクセル2016で時間を入力して...
-
excel 小さすぎて見えないセル...
-
EXCELで最後の行を固定
-
エクセルVBA 最終行を選んで並...
-
VBAで色の付いているセルの行削除
-
エクセルマクロで偶数行(又は...
-
エクセルのセルに指定画像(.jpg...
-
罫線の斜線を自動で引くマクロ
おすすめ情報
早速ご教示いただき有難うございます。
追加の質問なのですが、
一つ目に、行の初めではなしに終わりからカウントするにはどうしたら良いのでしょう?
二つ目に、○はそのままですが、●以外に、数字などがあっても●と同じようにカウントして数字に置き換えはできるのでしょうか?
三つ目に、どの列でも出来るようにはどのようにすればいいのでしょう。
追加でご教示いただければ、幸甚に思います。
早速ご教示いただき有難うございます。
追加の質問なのですが、
一つ目に、行の初めではなしに終わりからカウントするにはどうしたら良いのでしょう?
二つ目に、○はそのままですが、●以外に、数字などがあっても●と同じようにカウントして数字に置き換えはできるのでしょうか?
三つ目に、どの列でも出来るようにはどのようにすればいいのでしょう。
追加でご教示いただければ、幸甚に思います。