Sie Arbeitsmappe Namen finden können und die Zeilen über der Zelle löschen enthält, dass Namen wie:
Sub abc()
Dim SearchCol As Long, SearchRow As Long
Dim StrName As String
Dim FoundCell As Range
'get the workbook name after removing the extension
StrName = Left(ThisWorkbook.Name, (InStrRev(ThisWorkbook.Name, ".", -1, vbTextCompare) - 1))
'search for the workbook name
Set FoundCell = Cells.Find(What:=StrName, LookAt:=xlWhole)
If FoundCell Is Nothing Then
MsgBox "File name not found in Sheet" '---> if workbook name not found in the sheet
Else
Rows(1 & ":" & FoundCell.Row - 1).EntireRow.Delete '---> delete the rows if name found
End If
End Sub
BEARBEITEN: ________________________________________________________________________________
Option Explicit
Sub SearchWrkbookName()
Dim oSht As Worksheet
Dim lastRow As Long, i As Long
lastRow = 22
Dim strSearch As String
strSearch = Left(ActiveWorkbook.Name, (InStrRev(ActiveWorkbook.Name, ".", -1, vbTextCompare) - 1)) '---> to remove extension from worksheet name
Dim aCell As Range
Set oSht = Sheets(1)
Set aCell = oSht.Range("1:" & lastRow).Find(What:=strSearch, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
If Not aCell Is Nothing Then
Rows("1:10").Select
End If
End Sub
Editierter Code ist funktionierende Version Ihres Codes in Kommentaren geschrieben.
Also, was ist das Problem? Der Code sollte funktionieren (vorausgesetzt, Sie meinten "Range (" A1: A8 "). Löschen)' statt 'Range (" A: A8 "). Delete)'. – Leviathan
Setzen Sie '? ActiveWorkbook.Name' in das Direktfenster und drücken Sie [Enter]. Das Problem sollte sofort offensichtlich sein. – Jeeped
Enthält Ihre Zelle etwas wie *** Book1 *** oder *** Book1.xlsm *** ?? –