は
With ThisWorkbook.Sheets("Sheet1")
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
.Range(.Cells(1, LastCol - 4), .Cells(1, LastCol)).EntireColumn.Delete
End With
...このようにそれを試してみてくださいまたはあなたが必要な場合は、変更することができ、削除する列の数を保持するためにConstant Variable
を宣言することができます。
Const DelCnt As Integer = 5
Sub BlaBla()
Dim LastCol As Long
With ThisWorkbook.Sheets("Sheet1")
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
.Range(.Cells(1, LastCol - DelCnt + 1), .Cells(1, LastCol)).EntireColumn.Delete
End With
End Sub
編集:シート上のセルから削除する列の数を制御したい場合は
、あなたがこのアプローチに従うことができます...
Sub BlaBla()
Dim LastCol As Long
Dim DelCnt As Integer
DelCnt = Sheets("Sheet2").Range("E18").Value
With ThisWorkbook.Sheets("Sheet1")
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
If LastCol >= DelCnt Then
.Range(.Cells(1, LastCol - DelCnt + 1), .Cells(1, LastCol)).EntireColumn.Delete
End If
End With
End Sub
ありがとうございます、それは非常にうまく機能します。 Howver、LastCol - Valueを記述することが可能かどうかを知りたかったのですが、ここでValueは削除される列の正確な数です。現在の時点-1では、1ではなく2つの列が削除されます。ヘルプを評価してください! –
私は別の解決策を追加しました。あなたの質問が面倒であるかどうか確認してください。 – sktneer
ありがとう!それはとてもうまくいくようです!コンスタント変数を別のワークシートから調整できますか?例えばこれは実現可能でしょうか? ( "Sheet2")。範囲( "E18")としてConst DelCnt、またはそれは本当に一定にとどまるべきであり、私はSheet2を通してそれを変更できませんか? –