ワークシートの空の列を行2から削除しようとしています。列全体が空白の場合は、列を削除します。空白の列を行2から削除します。
なぜなら、行2から始まっているのは、行1にヘッダーがあるからです。その後、これらの列も空白の場合は削除されます。どのように行2から始めるのですか?私はあなたがClear
する必要があり、行2 から起動する場合Delete
に、これは進むべき道ではありません、行2
ワークシートの空の列を行2から削除しようとしています。列全体が空白の場合は、列を削除します。空白の列を行2から削除します。
なぜなら、行2から始まっているのは、行1にヘッダーがあるからです。その後、これらの列も空白の場合は削除されます。どのように行2から始めるのですか?私はあなたがClear
する必要があり、行2 から起動する場合Delete
に、これは進むべき道ではありません、行2
私は右のあなたを得た場合は、2行で始まる列が空であり、そうであれば、ユだろうかどうかを確認したいと思います列を削除するのが好きです。あなたはすべての列のヘッダを持っている場合は、あなたのコードは、
Sub Delete_Cols()
Dim MyRange As Range
Dim iCounter As Long
Set MyRange = ActiveSheet.UsedRange
For iCounter = MyRange.Columns.Count To 1 Step -1
If Application.CountA(Columns(iCounter).EntireColumn) = 1 Then
Columns(iCounter).Delete
End If
Next iCounter
End Sub
ありがとうございます – James
から空白の列のチェックを開始するマクロを必要
Sub Delete_Cols()
Dim MyRange As Range
Dim iCounter As Long
Set MyRange = ActiveSheet.UsedRange
For iCounter = MyRange.Columns.Count To 1 Step -1
If Application.CountA(Columns(iCounter).EntireColumn) = 0 Then
Columns(iCounter).Delete
End If
Next iCounter
End Sub
その周囲:
これは、2行目から65536行目までの範囲をクリアします。おそらくそれはあなたが望むように動作します。
それが空である場合は、以下のVBAは、あなたのシートで列を削除します。
Sub DeleteEmptyColumns()
'Updateby20140317
Dim rng As Range
Dim InputRng As Range
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Application.ScreenUpdating = False
For i = InputRng.Columns.Count To 1 Step -1
Set rng = InputRng.Cells(1, i).EntireColumn
If Application.WorksheetFunction.CountA(rng) = 0 Then
rng.Delete
End If
Next
Application.ScreenUpdating = True
End Sub
これは行2から明らかですか? – James
@danieltakeshi小さな修正を必要とする - この場合には、1行目は、まだ '列(iCounter).Delete'によって削除されます。 – Vityata
はい、私は彼の質問を理解したと思う(まだ少し混乱している)。私は[その他の質問](https://stackoverflow.com/questions/47162391/delete-blank-rows-from-column-b)を読んでいたので、彼はそのコードを修正しようとしていました。しかし、それはまったく異なっています。 – danieltakeshi
なぜApplication.CountA(列(iCounter).EntireColumn)= 1 – Storax