/ / VBA Excel öffnen, ändern (Rang), Excel schließen - Excel, vba, excel-vba

VBA Öffnen Sie Excel, ändern (Rang), Schließen Sie Excel - Excel, VBA, Excel-VBA

Ich versuche, Excel (2013) zum Öffnen einer Datei zu verwendenVorhandenes Excel-Dokument, ändern Sie es, indem Sie den Rangcode hinzufügen und anschließend schließen. Mein Code öffnet das Excel-Dokument, aber ich bin nicht sicher, wie der Abschnitt ByVal Target As Range implementiert werden soll. Ich weiß nicht genug über VBA, um dieses Makro in ein Makro zu integrieren. Vorschläge?

Sub Macro1()
Workbooks.Open Filename:= _
"C:UsersXDesktoptestprogram2.xlsx"

Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 13 Or Target.Cells.Count > 1 Then Exit Sub
"Dim SortRange As Range
Set SortRange = Range(("A1"), Cells(Rows.Count, 13).End(xlUp))
SortRange.Sort Key1:=Range("M2"), Order1:=xlAscending, Header:=xlYes
End Sub

"File to Macro (Should be same as above)

ActiveWorkbook.SaveAs Filename:= _
"C:UsersXDesktoptestprogram2.xlsx" _
, AccessMode:=xlShared
ActiveWorkbook.Close
End Sub

Antworten:

0 für die Antwort № 1

Interessanter Versuch aber ganz falsch. Sie müssen aus JavaScript stammen oder aus einem Bereich, in dem Routinen verschachtelt werden können (JS hat Schließungen). Leider kein so flippiges Zeug in der VBA. Bitte entfernen Sie das innere U-Boot außerhalb des äußeren U-Bootes und legen Sie das zugehörige Blatt "hinter".


0 für die Antwort № 2

Rufen Sie das zweite U-Boot aus dem ersten U-Boot auf, aber schachteln Sie es nicht hinein.

Sub Macro1()
Workbooks.Open Filename:= _
"C:UsersXDesktoptestprogram2.xlsx"

Worksheets("program2.xlsx").Activate
Call Worksheet_Change

ActiveWorkbook.SaveAs Filename:= _
"C:UsersXDesktoptestprogram2.xlsx" _
, AccessMode:=xlShared
ActiveWorkbook.Close
End Sub
Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 13 Or Target.Cells.Count > 1 Then Exit Sub
"Dim SortRange As Range
Set SortRange = Range(("A1"), Cells(Rows.Count, 13).End(xlUp))
SortRange.Sort Key1:=Range("M2"), Order1:=xlAscending, Header:=xlYes
End Sub