Avatar billede jscplaton Nybegynder
06. januar 2006 - 10:40 Der er 6 kommentarer og
1 løsning

VBA kode til knap i excel

Jeg har lavet en knap i excel der gerne skulle browse og derefter åbne en "txt"-fil. Derefter skal den kopier indholdet i txt-filen for til sidste at "paste values" i et ark der ligger i samme fil som knappen.

Indtil videre har jeg følgende:


Private Sub CommandButton2_Click()
Dim FileToOpen As Variant
FileToOpen = Application _
    .GetOpenFilename("Text Files (*.Txt), *.Txt", , "Vælg Filer", , True)
If FileToOpen(1) <> False Then
For i = 1 To UBound(FileToOpen)
Workbooks.Open FileToOpen(i)
Cells.Select
Selection.Copy
Windows("ABC Gentofte.xls").Activate
Sheets("GL").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Range("A1").Select
Application.CutCopyMode = False
Calculate
Next
End If
End Sub


Den fungerer indtil Cells.select, også går den i stå.
Hvad er der galt?
Avatar billede jkrons Professor
06. januar 2006 - 11:23 #1
Går den i stå ved cells.select eller effter denne? Hvis det5 er selve cells.select, så prøv evt at selecte arket først.
Avatar billede jscplaton Nybegynder
06. januar 2006 - 11:33 #2
Det ændrer ingenting. Den accepterer Sheets.select og stopper stadig i Cells.Select
Avatar billede jkrons Professor
06. januar 2006 - 11:39 #3
Jeg har selv haft problemet, menc kan ikke huske præcis, hvordan jeg løste det. Jeg erinder at det var noget med at lade være med at selecte først, men bare sige noget a la:

Sheets("Ark2").cells.copy
Avatar billede jscplaton Nybegynder
06. januar 2006 - 12:07 #4
Det fungerer heller ikke rigtigt. Et af problemerne er at txt-arket ikke altid har samme navn, og når jeg skriver active får jeg fejl samme sted
Avatar billede jkrons Professor
06. januar 2006 - 12:22 #5
har du prøvet at "se bort fra" navnet?

Sheets(1).cells.copy hvor tallet i parantesen referer til det sted i rækkefølgen arket ligger, uden hensyn til hvad det hedder.
Avatar billede jscplaton Nybegynder
06. januar 2006 - 12:45 #6
Super hjælp, mange tak. Jeg kunne også bruge samme formel længere nede.

Sheets("GL").Cells.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Send et svar så får du point.
Avatar billede jkrons Professor
06. januar 2006 - 12:59 #7
Her er et svar. Og generelt er det en god ide at undgå select så nmeget som muligt, da det kræver en del ressourcer (og dermed kører langsommere). Næsten alle funktioner kan udføres uden at selecte først.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester