
For n = 8 To gyo
If Cells(n, 1) <> "" Then
Cells(6, 1) = ""
Rows("5:6").Select
Selection.Copy
Rows(n, n + 1).Select
Selection.Insert Shift:=xlDown
End If
n = n + 1
Next n
マクロ初心者で、基礎が分かってません。読まれれば、分かられると思いますが、1列目の8行目から行を見ていって、数字が入っていれば、1列目6行目に入っている文字を消して、5、6行目をコピーして、数字の見つかった行とその次の行に5、6行目を挿入コピーし次に行きなさいと書いたつもりですが、Rows(n, n + 1).Selectで動かないように思われます。gyoはgyo = Cells(Rows.Count, 9).End(xlUp).Rowとし、Dim gyo as longと変数宣言してます。nもDim n as longと変数宣言しました。5、6行目には文字の入った結合セルがたくさんあります。Cells(6, 1) = ""は1回すれば良いので、本来はこの位置ではないと思いますが。
No.1ベストアンサー
- 回答日時:
>Rows("5:6")
これと
>Rows(n, n + 1)
これは、書き方が違っている事はわかりますか?
上は文字列、下は数値になってます。
よって文字列にするため
Rows(n & ":" & n + 1) が同じ書き方になりますね。
でも挿入なら
Rows(n).Select
でいけなかったかな?
ありがとうございました、とりあえず教えていただいたかたちでもコピーはできません。ただ、debugの時に型が一致しませんというエラーは出なくなりました。
gyo = Cells(Rows.Count, 9).End(xlUp).Rowの参照列を29列目にすると、9行目はマクロでスペースを入れたり文字を入れたりするため、だめかなと思いスペースしか入れない29列めで最終行を取得することにしました。すると、最終行(データが200程度ありますので200行目)に5、6行目をコピーします。1列目の数字は8行目にあるのですが、無視されているようです。n = n + 1の位置が悪いのでしょうか?
たくさんの操作をマクロでさせている一部なので、他の部分に問題があるのでしょうか。ネットを見ながら作成しているので。けったいなことになっているようです。
基礎力がない人間には敷居が高いですね。
No.3
- 回答日時:
>結合したり
なるほど。
仮に縦に結合をしていたから質問にあるように2行を選択してInsertしようとかんがえたのですかね?
確かに全体のシート構成(セルの状態)が読めないと、行のコピー・Insertだけの問題ではないかもですね。
>仮に縦に結合をしていたから質問にあるように2行を選択してInsertしようとかんがえたのですかね?
そうです。縦の結合です。
Range("F5:F6").Select
Range("F6").Activate
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
Range("F5:F6").Select
ActiveCell.FormulaR1C1 = "moji1"
ActiveCell.Characters(1, 2).PhoneticCharacters = "モジ1"
Range("G5:G6").Select
Range("G6").Activate
性格に取り出せたかどうかは分かりませんが、表題の結合部分です。挿入しても1列目に数字が残っているのが原因かと考えEnd If
Cells(n + 1, 1) = ""
を入れましたがn=n+1を入れても、入れなくてもデータ行数分の後ろに挿入の現象は止まりません。endifの前にn=n+1を入れると元の表題の前か後ろにデータ行数分挿入をしてしまいます。私自身ももう少し考えてみます。自己流でくんでいるので、大変です。基礎を勉強しないとだめですね。文化系人間の限界ですかね!
No.2
- 回答日時:
あ、見落としてましたね。
>End If
>n = n + 1
>Next n
For~Nextの中ではループ変数に対して
>n = n + 1
を付ける必要は本来ないはず。
もし必要と感じたのなら
>For n = 8 To gyo
を下から
For n = gyo To 8 Step -1
とやった方がよいかな。
そう言えば挿入でしたものね。
再度のアドバイス大変ありがとうございました。やってみましたが、うまくいきません。おじいさんなので、何かミスっているのでしょう。明日の朝もう一度試して見ます。2つの別ブックの表をsheet1にコピーし、そこからsheet2にピポットテーブルを作り、それをsheet3にコピーしてさらに、それを空白行を入れたり、文字を入れたり結合したりというややこしい操作をこの前にしているため、動かないのだと思います。ご回答自体は正しいと思うのですが、多分私の今までの初心者、基礎力なしマクロのため、何か変なことがおこっているのだと思います。最悪マクロを使わずとも手動でできる範囲なので、この部分は手動でやろうと思います。私の今までのマクロを全部載せるのは、多分読まれる方が苦労されると思いますので。下手くそマクロなので。
今後ともアドバイス宜しくお願いします。昨年からマクロに手を染め始めたばかりなので。大変ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
- Visual Basic(VBA) 最終行の指定について教えてください。 複数シートを1シートへまとめる下記マクロでは各シートの6行目を 1 2022/10/04 18:37
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
エクセルvbaで、別シートの最下...
-
【Excel】指定したセルの名前で...
-
エクセルVBAで結合セルの真ん中...
-
Excel vbaについて知恵もしくは...
-
Excelで指定した日付から過去の...
-
VBAでセルをクリックする回...
-
指定した条件で行セルを非表示...
-
VBA実行後に元のセルに戻りたい
-
任意フォルダから画像をすべて...
-
VBからEXCELのセルの値を取得す...
-
Application.Matchで特定行の検索
-
VBAでセル同士を比較して色付け
-
vb.netによるEXCEL値取得
-
連続する複数のセル値がすべて0...
-
DataGridViewの各セル幅を自由...
-
VBA ユーザーフォーム ボタンク...
-
Excel VBAで比較して数値があっ...
-
セルの選択、変色
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelで指定した日付から過去の...
-
エクセルvbaで、別シートの最下...
-
特定のセルが空白だったら、そ...
-
VBA実行後に元のセルに戻りたい
-
【Excel VBA】指定行以降をクリ...
-
任意フォルダから画像をすべて...
-
【Excel】指定したセルの名前で...
-
VBAでセルをクリックする回...
-
【VBA】シート上の複数のチェッ...
-
EXCELのVBA-フィルタ抽出後の...
-
Excelのプルダウンで2列分の情...
-
Excel vbaで特定の文字以外が入...
-
TODAY()で設定したセルの日付...
-
”戻り値”が変化したときに、マ...
-
ExcelのVBAで数字と文字列をマ...
-
VBA ユーザーフォーム ボタンク...
-
Excel VBA マクロ ある列の最終...
-
Excel VBA、 別ブックの最終行...
おすすめ情報
めぐみんさん有難うございます❗1度試してみます❗書き方の違いわかってませんでした。