Avatar billede _ksj_ Nybegynder
11. oktober 2007 - 09:51 Der er 11 kommentarer og
1 løsning

hente range fra lukket excel ark

Jeg skal hente et range i et lukket excel ark. Ranget starter i A7, men jeg ved ikke hvor mange rækker der er. Dette range skal kopieres over i et åbent excel ark, hvordan gør jeg det??
Jeg har prøvet med

Dim hentFra As Excel.Application
Dim fso As Object
StiNavn = "C:\xls_1"

Set fso = CreateObject("Scripting.FileSystemObject")
With fso
  If .FileExists(StiNavn) = True Then
      Set hentFra = CreateObject("Excel.Application")
      hentFra.Workbooks.Open StiNavn
                                       
      Set hentværdiRng = hentFra.Sheets(ArkNavn).Cells(7,1).CurrentRegion
      hentværdiRng = rngværdi.Offset(1).Resize(rng.Rows.Count - 1)               
      ThisWorkbook.Sheets(ArkNavn).Range("A7").Value = hentværdiRng
    hentFra.Quit
    Set hentFra = Nothing
  end if   
End With
Set fso = Nothing

men jeg kan ikke få det til at virke!!
Avatar billede _ksj_ Nybegynder
11. oktober 2007 - 10:08 #1
Jeg skylder måske lige at sige at det bare skal være celle værdierne i området der skal kopieres over i den anden workbook!
Avatar billede kabbak Professor
11. oktober 2007 - 11:54 #2
Public Sub hent()
Dim hentFra As Excel.Application
Dim fso As Object
Dim ArkNavn As String
ArkNavn = "Ark1"
StiNavn = "C:\test\Data.xls"

Set fso = CreateObject("Scripting.FileSystemObject")
With fso
  If .FileExists(StiNavn) = True Then
      Set hentFra = CreateObject("Excel.Application")
      hentFra.Workbooks.Open StiNavn
                                     
      hentværdiRng = hentFra.Sheets(ArkNavn).Cells(7, 1).CurrentRegion
      ThisWorkbook.Sheets(ArkNavn).Range("A7").Resize(UBound(hentværdiRng, 1), UBound(hentværdiRng, 2)) = hentværdiRng
    hentFra.Quit
    Set hentFra = Nothing
End If
End With
Set fso = Nothing
End Sub


Kan du selv rette til dit formål ??
Avatar billede _ksj_ Nybegynder
29. oktober 2007 - 11:18 #3
Undskyld jeg først skriver nu, men det tror jeg godt jeg kan, jeg kigger lige på det!
Avatar billede _ksj_ Nybegynder
29. oktober 2007 - 11:39 #4
jeg kan godt få det til at virke, jeg har bare et enkelt spørgsmål koden der vælger området: hentværdiRng = hentFra.Sheets(ArkNavn).Cells(7, 1).CurrentRegion, hvordan får jeg den til at tage området der hedder: minus den første række og ned til den sidste række med oplysninger i (en slags End(xlDown))?
Avatar billede _ksj_ Nybegynder
29. oktober 2007 - 14:10 #5
Måske lidt forvirrende.. det jeg mener er bare at den ikke skal sætte den første linie ind i ThisWorkbook.Sheets(ArkNavn)

hentværdiRng = hentFra.Sheets(ArkNavn).Cells(7, 1).CurrentRegion
ThisWorkbook.Sheets(ArkNavn).Range("A7").Resize(UBound(hentværdiRng, 1), UBound(hentværdiRng, 2)) =
Avatar billede kabbak Professor
29. oktober 2007 - 16:12 #6
prøv med

ntværdiRng = hentFra.Sheets(ArkNavn).Range(Cells(7, 1), Cells(Range("A65536").End(xlUp).Row, 1))
Avatar billede kabbak Professor
29. oktober 2007 - 16:13 #7
der manglede lidt

hentværdiRng = hentFra.Sheets(ArkNavn).Range(Cells(7, 1), Cells(Range("A65536").End(xlUp).Row, 1))
Avatar billede kabbak Professor
29. oktober 2007 - 16:17 #8
Hov lige en tilføjelse, den hener kun kolonne A

Ret det sidste 1 tal til det kolonne nummer som der er data i længst til højre.
hentværdiRng = hentFra.Sheets(ArkNavn).Range(Cells(7, 1), Cells(Range("A65536").End(xlUp).Row, 1))

Man kan faktisk også bruge bogstaver
sådan

hentværdiRng = hentFra.Sheets(ArkNavn).Range(Cells(7, "A"), Cells(Range("A65536").End(xlUp).Row, "M"))
Avatar billede _ksj_ Nybegynder
01. november 2007 - 11:27 #9
jeg kan ikke få det til at virke, den kommer op med en Run-time error '1004' "Application-defined or objedt defined error"
Kan det være fordi jeg ikke har dim'et hentværdiRng?
den kunne nemlig godt finde ud af det med den første du gav mig: hentværdiRng = hentFra.Sheets(ArkNavn).Cells(7, 1).CurrentRegion
Avatar billede kabbak Professor
01. november 2007 - 23:01 #10
hentværdiRng = hentFra.Sheets(ArkNavn).Range(Sheets(ArkNavn).Cells(7, "A"), Sheets(ArkNavn).Cells(Sheets(ArkNavn).Range("A65536").End(xlUp).Row, "M"))
Avatar billede _ksj_ Nybegynder
09. november 2007 - 10:13 #11
mange tak for hjælpen, kan du ikke sende mig et svar så jeg kan give dig dine point??
Avatar billede kabbak Professor
09. november 2007 - 12:30 #12
et svar ;-))
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
Kurser inden for grundlæggende programmering

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