2017-07-27 6 views
1

現在、セルAAからCTまでの範囲のデータでいっぱいの複数の列を持つワークシートがあります。最初の列には見出しのある行が含まれ、固定されます。この範囲の週末にデータが追加されます。 &最初と最後の4つの間のすべての列が削除されます(1ヶ月分のデータが表示されますが、見出しはそのままです)。シート上の最初と最後の4つの間のすべての列を削除する

私はVBAの新機能で、これを自動化するためのコードを書こうとしていましたが、これまでは5番目の列を最後から選択していました。しかし、私はそれが最後とCell AAから4列目の間の列を選択するために取得することはできません。

Sub DeleteColumns() 
    Dim i 
    i = Range("KFIData").End(xlToRight).Offset(0,-4).EntireColumn.Select 
    Columns("AA:ColumnFive").Delete 
End Sub 

私は完全にこのことについて間違った道を進んでいますか?

感謝

+0

**列**を削除してもよろしいですか?または、列の**コンテンツ**のみを削除したいですか? – Noceo

答えて

1

さてあなたは、この文を使用し、端から5列目をキャッチするために管理している場合:

Range(Columns("AA"), Columns(ColumnFiveFromEnd)).Delete 

ColumnFiveFromEnd数だけでなく、テキスト識別子することができます。

+0

文字列で番号を指定して列のアドレスを指定すると、読みやすさが向上すると思います。さもなければ、それは素敵でシンプルなコードのように思えます。 – Noceo

+0

@Noceoわかりやすさについて心配しています。しかし、この場合、「AA」は仕様に直接関係しているので読みやすくなります。最後の列は数値変数で、それをテキストに変換するのは困難です(実行可能ですが)。 –

+0

私はそれが軽度の懸念であることに同意します。あなたの編集はそれをより理解しやすくしました。もし彼がVBAに新しい人ではなかったら、私はおそらくそれをすべて対処していないだろう:-) – Noceo

関連する問題