プロが教えるわが家の防犯対策術!

お忙しいところ、基本的な事で誠にすいませんが教えてもらえないでしょうか?。マクロで列を加えたら上手く修正できなくなりました。
Private Sub CommandButton1_Click()
Dim zaiko As String
Dim r As Range, C As Range
Dim g As Integer
zaiko = ListBox1.List(ListBox1.ListIndex, 0)
With ActiveSheet
Set r = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)) _
.Find(What:=zaiko, LookIn:=xlValues, LookAt:=xlWhole, After:=Cells(Rows.Count, 1).End(xlUp))

' cells(1,1)をcells(1,3)に変更だけでは上手くいきません?。set rに上手くセットしません。
End With

If Not r Is Nothing Then
With r.End(xlDown)
MsgBox .Row 'これ?


'---------------------------------------

' Risize(, 5) もAからGになるので(, 7)ですか?。


.Resize(, 5).Copy
.Offset(1).Insert Shift:=xlDown
Application.CutCopyMode = False
For Each C In .Offset(1, 1).Resize(1, 5)
If Not C.HasFormula Then C.Value = ""
Next

MsgBox .End(xlDown).Row ''これ?

MsgBox Cells(Rows.Count, 1).End(xlUp).Row

g = .End(xlDown).Row

Range(Cells(g, 1), Cells(g, 4)).ClearContents

End With
End If

End Sub

「マクロで列を加えたら上手くいかなくなりま」の質問画像

A 回答 (2件)

>cells(1,1)をcells(1,3)に変更だけでは上手くいきません?



.Range(.Cells(1, "C"), .Cells(Rows.Count, "C").End(xlUp))

>Risize(, 5) もAからGになるので(, 7)ですか?

基準はC列
なのでそのまま・・ CからG迄 5列

A列を含める場合は、2つ左に行って 7つ
.Offset(, -2).Resize(, 7).Copy
    • good
    • 0
この回答へのお礼

ありがとうございました。うまくできました。

お礼日時:2022/05/24 09:44

こんばんは



やりたい処理の内容が書いてないので、動かないコードだけ見せられても、何をどうしたいのかサッパリ和k理ませんけれど・・・

>マクロで列を加えたら上手く修正できなくなりました
>' cells(1,1)をcells(1,3)に変更だけでは上手くいきません?
どこを変更したのかはっきりしませんけれど、最終列の判定がおかしいのでは?

>.Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp))
多分、Cells(1,1)をCells(1,3)にしただけと想像しますけれど、ご提示のシートの状態なら
>Cells(Rows.Count, 1).End(xlUp)
の結果はA1セルになるはずなので、検索範囲はA1:C1になるものと想像されます。
そういうつもりならば、それでよいのですが、多分、違うのだろうと想像します。

後半は支離滅裂なのでよくわかりませんけれど・・
>With r.End(xlDown)
はやめておいた方が良いですよと警告しておいたと思いますけれど・・・
https://oshiete.goo.ne.jp/qa/12959929.html

まぁ、どちらでも良いですけれど。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!