アプリ版:「スタンプのみでお礼する」機能のリリースについて

おはようございます。この行にはテキストボックス、入力規則は設定していますが、それ以外設定していないと思いますが、何のテーブルかよくわかりませんいます。

Private Sub CommandButton1_Click()
Dim shoukeng
Dim r As Range, C As Range
Dim g As Integer
shoukeng = ListBox1.List(ListBox1.ListIndex, 0)
With ActiveSheet
Set r = .Range(.Cells(1, "e"), .Cells(Rows.Count, "e").End(xlUp)) _
.Find(What:=shoukeng, LookIn:=xlValues, LookAt:=xlWhole, After:=Cells(Rows.Count, "e").End(xlUp))
End With
If Not r Is Nothing Then
With r.End(xlDown)

'---------------------------------------
.Offset(, -4).Resize(, 26).Copy

.Offset(, -4).Insert Shift:=xlDown   (ここでエラーになります。 1004 テーブル内でセルをシフトしようとしているので許可されません。)
Application.CutCopyMode = False
For Each C In .Offset(, -4).Resize(, 26)
If Not C.HasFormula Then C.Value = ""
Next
End With
End If

End Sub

「EXCEL マクロで行を挿入して貼り付け」の質問画像

質問者からの補足コメント

  • つらい・・・

    fujillinさんこんにちは、早速の回答ありがとうございます。
    変な質問で申し訳ありません。色々助かっていますテキストボックスで、選んだ行に一致するグループの最後に同じ書式で計算式は残して、コピーして追加する処理を考えています。
    nは行番号でよいのですか?。色々やってもなかなかうまくいきません。今のマクロをどう直したら良いか、かなりわからなくなりました。ようやく”c”グループ名が入っているところを基本にしてテキストボックスで選択したものと一致したグループの最後の行を取り出し選択して、コピーのところで出来ない所です。よろしくお願いいたします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2022/05/24 11:03

A 回答 (2件)

No1です。



>よろしくお願いいたします。
何の説明もなしであ~したい、こ~したいと言われても、さっぱりわかりません。
(未だに、テーブルを扱っているのかすら不明)

エスパー的に、当たるも八卦でよければ・・
Withの中で
 .ListObject.ListRows.Add .Row
とでもしておけば、その近辺でテーブルに1行挿入されるのではないでしょうか?

>nは行番号でよいのですか?。
テーブル内の行番号です。
どこにテーブルがあるのか知りませんけれど、タイトル行がある場合はその次が1行目。
レファレンスのリンクを貼っておいたはずなので、そちらの解説を読んでください。
    • good
    • 1
この回答へのお礼

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

お礼日時:2022/05/28 13:03

こんにちは。



前提条件の説明もなくコードだけなので、何をしたいのかもはっきりとはしませんけれど・・

状況から想像するところ、テーブルとして定義されている表内の1セルに対して挿入(=シフトダウン)しようとしてエラーになっているのではないでしょうか?
(テーブルなので、表形式が崩れてしまう操作をしようとしているという意味です)

指定セルがテーブル内なのなら
 セル.ListObject
で、テーブルが取得できますので、そのテーブルに対して、1行分を挿入したいのなら
 ListObject.ListRows.Add n
で、行の挿入をしてください。(nは挿入位置のインデックス)
https://docs.microsoft.com/ja-jp/office/vba/api/ …
この回答への補足あり
    • good
    • 0

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