12. oktober 2010 - 16:30Der er
12 kommentarer og 2 løsninger
Import af navngivet Range fra Excel til Access 2007 vha TransferSpreadsheet
Jeg har brug for at importere et range fra et specifikt ark i en Excel workbook. Man kan importere et range ved at specificere hvilke celler det drejer sig om i TransferSPreadsheet metoden, men hvis jeg nu ikke kender cllernes navne, men ved kun at der er defineret et range hvis navn jeg kender, og den celle hvor de ænskede data starter (øverste venstre hjørne af det interessante område, men ved ikke hvor mange rækker der er)
Jeg har googlet mig blind, og kan ikke finde en metode til med TransferSpreadsheet at kopiere en navngivet range. Jeg kan sagtens importere et specifikt ark i workbooken, men et område på arket?
Kan man dette ? Eller skal man til at tage fat i arket og kopiere celler?
I Access 2007 vil TransferSpreadsheet tilsyneladende ikke godtage $-tegn i ranges, dvs. "Sheet1!A1:B3" virker fint, men "Sheet1!$A$1:$B$3" giver en fejl - kan det være det samme du er ude i?
Hvad mener du præcist? Jeg kan fint læse et enkelt ark ad gangen:
Set objExcel = CreateObject("Excel.Application") 'objExcel.Visible = True
strFileName = "xxx"
Set objWorkbook = objExcel.workbooks.Open(strFileName) Set colWorksheets = objWorkbook.Worksheets I = 0 For Each objWorksheet In colWorksheets I = I + 1 If I = 3 Then Return End If 'Set objRange = objWorksheet.UsedRange DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _ "Employees" & Str(I), strFileName, False, objWorksheet.Name & "!" & objWorksheet.Range("myrange").Address
Next
Har også prøvet: Set objRange = objWorksheet.Range("myrange") med tanke på DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _ "Employees" & Str(I), strFileName, False, objWorksheet.Name & "!" & objRange.Address
men kommer ikke forbi Set objRange -samme fejl som før
@anlu
Nej - for jeg kender ikke udstrækningen af min range. Jeg prøver at bruge det navn som er tilskrevet i Excel
Nej jeg kommer som sagt ikke ned til Transfer SPreadsheet
Jeg er ude efter en opskrift på hvordan man skal gøre - evt. en bekræftelse på (eller det modsatte) at det kan lade sig gøre i det hele taget: altså TransferSpreasheet og et navngivet Range.
Den nemmeste løsning er at huske, at en navngivet range er per default global i workbooken. Det er derfor ikke nødvendigt specificere navnet på arket OG på den navngive range - man kan nøjes med det sidste. I dette tilfælde kan man bare bruge
og slippe for at åbne excel-objekter med videre :-)
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.