VBAを使用してExcelのテーブルに新しい行を追加しようとしています。これは比較的単純ですが、通常の "ActiveSheet.ListObjects(" Table1 ")。ListRows.Add"を使用しようとすると、 "これは動作しません。私はなぜこのエラーが発生しているのか理解しています(なぜなら、新しい行は、以下の表が分かれるような方法でセルを移動させるからです)。VBAを使用してExcelテーブルに新しい行を追加すると、その下に異なる幅のテーブルがある場合
このテーブルに行を追加するには、好ましくは行全体が追加されるような方法でテーブルを水平にすることはできません。私はいくつかのコードを書いてきましたが、新しい行が追加されていますが、AutoFormatが有効になっていることに依存しています。また、多数のテーブルを扱っているときには、スクリーンショットはちょうど私が作ったダミーファイルからのものです)。
私がこれをやろうとしている理由は、同じ名前のリストで横の長さが異なるテーブルがいくつかあり、すべてのテーブルに新しい名前を追加するマクロを作成しようとしているからです。私もテーブルのサイズを変更することで実験しましたが、それはうまくいかなかったようです。以下のスクリーンショットとコードをご覧ください。
ありがとうございます。
Sub AddName()
Range("Table1").EntireRow(Range("Table1").Rows.Count).Select
Selection.Offset(1, 0).Select
Selection.EntireRow.Insert
Selection.Offset(-1, 0).Copy Destination:=Selection
Selection.ClearContents
Selection.Cells(1, 1).Value = Name
End Sub
挿入しているテーブルの右にある下のテーブルを移動するか、別のシートに移動すると問題が解決しますか? –
マークとの同意。この種の問題の原因であるテーブルの配置を最初に扱うのが最善でしょう。あなたのテーブルをこのように配置しなければならない特別な理由がない限り、(手動でも)データを追加しようとするときは必然的に問題が発生します。彼らは動かなければならないと言っているわけではありませんが、それは確かに一般的に問題を複雑にします。 –
残念ながら、この場合のテーブルの移動は実際には不可能です。 – Jakub64