Ich habe eine Sammlung Wörter innerhalb SheetNames
und ich versuche, neue Worksheet
für jedes Wort innerhalb SheetNames
, finden Sie den Code unten.Vermeiden Sie doppelte Arbeitsblätter zu Excel Arbeitsbuch
Vor dem Hinzufügen der Worksheet
Ich versuche zu überprüfen, ob das Blatt bereits in meiner Arbeitsmappe mit sheetExists function
, Code unten angegeben ist.
For Each SheetName In SheetNames
If sheetExists(SheetName , newWB) = False Then
newWB.Activate
Set FilPage = Worksheets.Add
FilPage.Activate
SheetName = Replace(Replace(Replace(Replace(Replace(SheetName, ".", " "), "[", " "), "]", " "), "/", "_"), "\", " ")
If Len(SheetName) <= 30 Then
FilPage.Name = SheetName
Else
SheetName = Left(SheetName, 23) & "-trimed"
End If
ActiveSheet.Range("A1").Activate
ActiveCell.PasteSpecial
End If
Next
Der Code valediction function sheetExists
mit Arbeit nicht konsequent.
Function sheetExists(sheetToFind ,wb As Excel.Workbook) As Boolean
WS_Count = ActiveWorkbook.Worksheets.Count
sheetExists = False
For I = 1 To WS_Count
If ActiveWorkbook.Worksheets(I).Name = sheetToFind Then
sheetExists = True
Exit Function
End If
Next
End Function
ich kann einige der Arbeitsblatt sehen hinzugefügt mit Namen „Sheet99“ oder „Sheet12“ usw., auch wenn SheetName
in die Funktion übergeben wird. manchmal, wenn sheetExists function returns True
noch einen Parameter wb As Excel.Workbook
auf Ihre Function sheetExists
, groß, verwenden Sie es Arbeitsmappe versucht, ein worksheet
Danke für die Vorschläge, Code sieht jetzt sauber aus. Wie kann ich diese Funktion 'Function sheetExists' sensitiv machen? Zum Beispiel: Wenn mein Excel ein Blatt namens 'sheet1' hat und ich' SHEET1' an 'sheetToFind' übergebe, sollte 'SHEET1' als neues Blatt behandelt werden. – Ashwin
@Ashwin Sie können das nicht tun; Blattnamen sind unabhängig von Groß- und Kleinschreibung! Sie können kein neues Blatt mit einem bestehenden Namen hinzufügen, wenn die Groß-/Kleinschreibung geändert wird. –