27. maj 2011 - 22:41Der er
2 kommentarer og 1 løsning
VBA: Åbne og lukke dokumeneter
Hej,
Jeg er igang med at lave en excel løsning hvor i jeg har brug for at åbne kopier noget, sortere det og så lukke det dokument hvor jeg tog værdierne fra igen, måske ikke lige i den rækkefølge (måske en del af problemmet). Er kommet frem med følgende kode stump.
Private Sub Workbook_Open()
Sheets("Data").Select 'vælger data worksheetet Range("B3").Select 'og sætter sig start punktet for data serien Workbooks.Open Filename:="C:\Data.xlsx" 'åbner data filen Range("A2").Select 'går til start punketet for data filen Range(Selection, Selection.End(xlDown)).Select 'markere indtil sidste række Range(Selection, Selection.End(xlToRight)).Select 'markere alle kolunner
Selection.Copy 'kopier Windows("Work.xlsm").Activate 'går til worksheetet ActiveSheet.Paste 'indsætter det kopieret Sheets("Work").Select 'går til Work worksheetet
Range("b7:u5000").Select 'udfører et filter på dataen i den nye data så den kun viser for den ønskede konsulent Selection.AutoFilter Selection.AutoFilter Field:=3, Criteria1:=Range("C2").Value Windows("Data.xlsx").Activate ' går tilbage til data filen ActiveWorkbook.Save 'gemmer den ActiveWorkbook.Close ' lukker den Application.CutCopyMode = False 'Tømmer cache End Sub
Men får en fejl når jeg prøver at skifte til Windows(Data.xlsx) igen for at gemme og lukke..
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
' Sheets("Data").Select 'vælger data worksheetet ' Range("B3").Select 'og sætter sig start punktet for data serien Workbooks.Open Filename:="C:\Data.xlsx" 'åbner data filen Range("A2").Select 'går til start punketet for data filen Range(Selection, Selection.End(xlDown)).Select 'markere indtil sidste række Range(Selection, Selection.End(xlToRight)).Select 'markere alle kolunner
Selection.Copy Windows("Work.xlsm").Sheets("Data").Range("B3") 'koperer og indsætter det kopierede ' ActiveSheet.Paste 'indsætter det kopieret ' Sheets("Work").Select 'går til Work worksheetet ActiveWorkbook.Save 'gemmer den
Sheets("Data").Select Range("b7:u5000").Select 'udfører et filter på dataen i den nye data så den kun viser for den ønskede konsulent Selection.AutoFilter Selection.AutoFilter Field:=3, Criteria1:=Range("C2").Value ' Windows("Data.xlsx").Activate ' går tilbage til data filen ' ActiveWorkbook.Save 'gemmer den ' ActiveWorkbook.Close ' lukker den ' Application.CutCopyMode = False 'Tømmer cache End Sub
' Sheets("Data").Select 'vælger data worksheetet ' Range("B3").Select 'og sætter sig start punktet for data serien Workbooks.Open Filename:="C:\Data.xlsx" 'åbner data filen Range("A2").Select 'går til start punketet for data filen Range(Selection, Selection.End(xlDown)).Select 'markere indtil sidste række Range(Selection, Selection.End(xlToRight)).Select 'markere alle kolunner
Selection.Copy Windows("Work.xlsm").Sheets("Data").Range("B3") 'koperer og indsætter det kopierede ' ActiveSheet.Paste 'indsætter det kopieret ' Sheets("Work").Select 'går til Work worksheetet ActiveWorkbook.Save 'gemmer den ActiveWorkbook.Close ' lukker den
Sheets("Data").Select Range("b7:u5000").Select 'udfører et filter på dataen i den nye data så den kun viser for den ønskede konsulent Selection.AutoFilter Selection.AutoFilter Field:=3, Criteria1:=Range("C2").Value ' Windows("Data.xlsx").Activate ' går tilbage til data filen ' ActiveWorkbook.Save 'gemmer den ' ActiveWorkbook.Close ' lukker den ' Application.CutCopyMode = False 'Tømmer cache End Sub
Tak for hjælpen Kabbak, men det virkede heller ikke, endte med en løsning hvor jeg bruger ThisWorkbook og har delt macroen op i tre forskellige.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.