Ich bearbeite eine vorhandene Vorlage in VBA. Diese Vorlage organisiert Daten von einem Blatt "Rohdaten" in ein Blatt "Tag", "Abend" und "Nacht". Ich möchte ein Blatt mit dem Namen "Weekend" erstellen, wo Daten von "Rohdaten" kopiert werden, wenn das Datum kein Wochentag ist (ich weiß, wie dieses Bit zu machen ist).VBA: Tickbox - True, erstellt ein Blatt. Falsch, löscht das Blatt
Allerdings ist die Menge an Daten, die durch diese Vorlage fließt, enorm. Um zu vermeiden, dass ein Wochenendblatt erstellt wird, wo der Benutzer keinen braucht/möchte, möchte ich einen Codeabschnitt einfügen, wenn ein Häkchen gesetzt ist (True), ein Blatt mit dem Namen "Weekend" wird erstellt (innerhalb der Arbeitsmappe, aber zwischen vorhandenen Blättern - nämlich zwischen einem Blatt mit dem Namen "Nacht" und "Grafik - Alle Daten") und wenn es nicht markiert ist (Falsch) nicht existieren.
Ich dachte daran, dieses Blatt die ganze Zeit zu haben, und es ausgeblendet zu haben, wenn das Häkchen nicht gesetzt ist, aber das bedeutet, dass die Daten noch hineingelegt würden und ich würde es im Interesse der Effizienz lieber nicht machen hab es so.
Hier ist der Code I
Sub ToggleWindDirection()
Dim i As Long
Application.ScreenUpdating = False
If sheetArr(1) Is Nothing And LastNDRow = Empty Then
DefineLists
End If
Sheets("Raw Data").Unprotect Password:="2260"
For Each sht In sheetArr
sht.Unprotect Password:="2260"
Next
Set chtAllData = ActiveWorkbook.Charts("Graph - All Data")
With Sheets("Raw Data")
If .Range("O15").Value = True Then
'Wind direction is being used
.Range("C17:G17").Font.ColorIndex = xlAutomatic
.Range("D17").Font.ColorIndex = 9
.Range("G17").Font.ColorIndex = 9
.Range("D17").Locked = False
.Range("G17").Locked = False
.Range("F" & FirstNDRow & ":F10000").Interior.Pattern = xlNone
.Range("F" & FirstNDRow & ":F10000").Interior.PatternTintAndShade = 0
.Range("F" & FirstNDRow & ":F10000").Font.ColorIndex = xlAutomatic
Else
'Not using wind direction
.Range("C17:G17").Font.ColorIndex = 16
.Range("D17").Locked = True
.Range("G17").Locked = True
.Range("F" & FirstNDRow & ":F10000").Interior.Pattern = xlSolid
.Range("F" & FirstNDRow & ":F10000").Interior.TintAndShade = -4.99893185216834E-02
.Range("F" & FirstNDRow & ":F10000").Font.ColorIndex = 16
End If
'Addition by lewisthegruffalo 2016
Dim ws As Worksheet
If .Range("O21").Value = True Then
'create the weekend sheet
Set ws = Worksheets.Add(After:=Worksheets("Night"))
ws.Name = "Weekend"
Else
'No Weekend needed
Worksheets("Weekend").Delete
End If
End With
Sheets("Raw Data").Activate
Application.ScreenUpdating = True
End Sub
Jede Hilfe wäre sehr apprichiated zu ändern versuchen.
Mit freundlichen Grüßen,
lewisthegruffalo
Hallo @Mono sorry für die Menge an Zeit, die ich diese verlassen habe, habe ich von dem Computer entfernt. – lewisthegruffalo
Bis jetzt habe ich eine 'Homepage' (sozusagen), wo ich Variablen eingeben kann, die definieren, welche Art von Zeit angemessen ist, um "Nacht" oder "Tag" usw. zu betrachten, es gibt auch ein paar andere Kästchen, die fragen, ob Wetterdaten, die ebenfalls erhoben werden, sind zu berücksichtigen. Wenn diese nicht markiert sind (dh sie werden sofort ausgegraut und durch die '.Locked = True'-Methode" gesperrt ". Hoffe, das hilft – lewisthegruffalo
Auch @Mono, ich habe versucht, dein' ws = Worksheet.add ('Abschnitt und es habe mich ein Fehler 1004 mit der Nachricht "Methode 'Hinzufügen' von Objekt 'Sheets' fehlgeschlagen, keine Beratung, Grüße – lewisthegruffalo