その列に単一の値が含まれていない場合、vbスクリプトを使用してExcel列を削除するより高速なプロセスはありますか?
For Task=2 To 300
Vcounter="False"
IntRow6=2
Do While objSheet6.Cells(IntRow6,1).Value = ""
If objSheet6.Cells(IntRow6,Task).Value <> "" Or objSheet6.Cells(IntRow6,Task).Value <> "None"
Vcounter="True"
Exit DO
End If
IntRow6=IntRow6+1
Loop
If Vcounter <> "True" Then
objSheet6.Cells(1,Task).EntireColumn.Delete
End If
Next
アップデート:
Excel の各行のデータ数を数える方法も教えてください。例えば
Col1 Col2 Col3 Col4 Col5
Row1 A B X P
Row2 L M
Row3 T V
これで、VBScript は、Row1 には 4 つのデータが含まれ、Row2 には 2 つのデータが含まれ、Row3 には wise のように 2 つのデータが含まれていることをカウントする必要があります。
コードの更新
あなたのコードを参照してコードを更新しました。そして、ポップアップボックスとして「Hi」を使用して、コントロールがIf Bodyに入ったかどうかを確認しました.しかし、ポップアップは決して来ませんでした. "Application.WorksheetFunction.CountBlank(rg)" の呼び出しで問題が発生したようです。ここで確認して助けてもらえますか?削除されるべき列はありません。
Sub DeleteColumns(Ob6)
Dim CountBlank
Dim rows
Dim rg,c
Set objExcel1 = CreateObject("Excel.Application")
For c = 150 To 155
Set rg = Ob6.Range(Ob6.Columns(c),Ob6.Columns(c))
CountBlank = objExcel1.Application.WorksheetFunction.CountBlank(rg)
rows = rg.rows.Count
If CountBlank = rows Then
MsgBox("Hi")
rg.EntireColumn.Delete
End If
Next
End Sub
修正: 修正したばかりなので、問題ありません。更新部分についてはあなたの助けが必要
ありがとう