ich diesen Code ausführen und Excel-Sitzung zerstört oder in der Nähe nicht. Ich weiß, dass ich nicht leaves.add oder ws.delete verwende, weil es mit Bestätigung sagt und ich nicht weiß, wie man die einzelnen Linien benutzt, die meine Gegenstände erklären. Ich kenne die Syntax nicht, denke ich. Hier ist der Code. Kann jemand darauf hinweisen, wie man es repariert?Excel wird nicht nach dem Verfahren schließen ausgeführt
Public Function ComboLists()
Dim xlApp As Excel.Application
Dim wb As Excel.Workbook
Dim ws As Excel.Worksheet
Dim MyFileName As String
Dim bfile As String
Dim MyList(1) As String
Dim lRow As Long
bfile = "S:\_Reports\KSMS\Designated Letter\KSMS Designated Letter - "
MyFileName = bfile & Format(Date, "mm-dd-yyyy") & ".xls"
On Error Resume Next
Set xlApp = CreateObject("Excel.Application")
On Error GoTo 0
Set wb = xlApp.Workbooks.Open(MyFileName)
Set ws = wb.Sheets(1)
ws.Activate
xlApp.DisplayAlerts = False
MyList(0) = "Approve Location"
MyList(1) = "Delete Location"
lRow = ws.Cells(Rows.Count, 1).End(xlUp).Row
i = 2
For Each c In wb.Sheets(1).Range("M" & lRow)
If ws.Cells(i, 12).Value = "US" Then
rng = "M" & i '& ":" & "Z" & i
With Range(rng).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:=Join(MyList, ",")
wb.CheckCompatibility = False
wb.Save
wb.CheckCompatibility = True
End With
Else
rng = "A" & i & ":" & "L" & i
With xlApp.Range(rng).Validation
ws.Delete
wb.CheckCompatibility = False
wb.Save
wb.CheckCompatibility = True
'wb.Close savechanges:=False
End With
End If
i = i + 1
Next c
Set ws = wb.Sheets(1)
ws.Activate
ws.Cells.Rows("1:1").Select
wb.CheckCompatibility = False
wb.Save
wb.CheckCompatibility = True
wb.Close savechanges:=False
xlApp.Quit
xlApp.Quit
xlApp.Quit
xlApp.Quit
Set xlApp = Nothing
Set wb = Nothing
Set ws = Nothing
Exit Function
End Function
Ich würde jede Hilfe zu diesem Thema schätzen.
Wohin läuft dieser Code? Wenn es in Excel ausgeführt wird, sollte die Variable 'xlApp' nicht benötigt werden. –
Ich glaube, das Problem liegt darin, dass die Arbeitsmappe, die den Code ausführt, geschlossen ist, so dass das Makro nicht mehr funktioniert. – dwirony
Es öffnet eine Arbeitsmappe und fügt den Zellen in einer Schleife Drop-Down-Validierung hinzu. – Atlas80808