0
私が作業していたworksheet_changeマクロについて質問しました。それはほぼ完了しましたが、今私は困惑しています。ワークブック内のすべてのワークシートをループして、D6:D34のセルにワークシートの名前が見つからない場合は、ワークシートを削除します。どうすればいい?私は完全に困惑している。現在のコード:列Dのセルに名前が見つからない場合は、ワークシートを削除します
Private Sub WorkSheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False 'Run faster
Application.DisplayAlerts = False 'Just in case
'To add worksheets automatically
Dim shtName As Variant
For Each shtName In Sheets(1).Range("D6:D34")
If shtName <> "" Then
If WorksheetExists((shtName)) Then 'do nothing
Else
ActiveWorkbook.Sheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = shtName
Sheets("Admin").Select
End If
Else 'there's no sheet
End If
Next
'to delete sheets with no matching value
Dim ws_count As Integer
Dim i As Long
ws_count = ActiveWorkbook.Worksheets.Count
For i = 1 To ws_count
'what do I need here???
Next i
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Function WorksheetExists(sName As String) As Boolean
WorksheetExists = Evaluate("ISREF('" & sName & "'!A1)")
End Function
こんにちはティム。実行時エラー '-2147221080(800401a8)'を取得しています:オートメーションエラー – dwirony
どの行ですか?あなたのシートリストは別のワークブックにありますか? –
それは私にデバッグをさせていない、私はちょうど終わりのオプションがあり、クラッシュを凌ぐ:/。シートは別のブックに格納されていません。 – dwirony