ユーザーがシート 1 で選択したドキュメントを電子メールで送信する Excel VBA プロジェクトがあります。シート 1 には、列 1 と列 2 の 2 つの列があります。列 2 には、すべてのドキュメントがハイパーリンクとしてリストされ、ユーザーが選択したい場合ドキュメントの Column1 に「x」を入力します。次に、ユーザーは [送信] ボタンをクリックして電子メールを送信します。ボタン クリック イベントのコードは次のとおりです。
…
Set Ash = ActiveSheet
On Error GoTo cleanup
Ash.Range("A5:B500").AutoFilter Field:=1, Criteria1:="x"
For Each cell In Ash.Range("B5:B300").SpecialCells(xlCellTypeVisible)
If cell.Offset(0, -1).Value = "x" Then
…
End If
Next
…
cleanup:
Set OutApp = Nothing
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
…
私の問題は、エラーが発生したときに発生します。ユーザーが [送信] ボタンをクリックした後、エラーが発生した場合、Sheet1 ではそれらのドキュメントのみが選択され、他のすべてのドキュメントは除外されます。また、各列の上部にフィルター ボタンが表示されます。これは、何か問題が発生していることをユーザーに認識してもらいたいため、問題ありません。
私の問題は、フィルター設定を変更したり、フィルターから元に戻したりできないことです。Excel を閉じてから再度開く必要があります。Column1 の上にあるフィルター ボタンをクリックしてフィルターをクリアし、他のすべてのドキュメントを元に戻す方法はありますか?