Lystig Skrevet 29. august 2004 Del Skrevet 29. august 2004 Hei, jeg har behov for å lese inn data fra et excel dokument, er dette mulig med VB? Noen som har et eksempel eller to på hvordan man gjør dette? Lenke til kommentar
aadnk Skrevet 29. august 2004 Del Skrevet 29. august 2004 Den beste måten å gjøre dette på er med ADODB. Følgende kode er et eksempel på akuratt det: Private Sub Form_Load() Dim rs As Object Dim cnn As Object Dim myPath As String Dim fld As Object Dim fldCat As String Set rs = CreateObject("ADODB.Recordset") Set cnn = CreateObject("ADODB.Connection") myPath = "C:\Test.xls" cnn.Open "Driver={Microsoft Excel Driver (*.xls)};DBQ=" & myPath & ";ReadOnly=1" rs.Open "SELECT * FROM [Sheet1$]", cnn Do While Not rs.EOF For Each fld In rs.Fields fldCat = fldCat & fld Next MsgBox fldCat fldCat = "" rs.MoveNext Loop End Sub Lenke til kommentar
Lystig Skrevet 30. august 2004 Forfatter Del Skrevet 30. august 2004 Tusentakk Du vet vel ikke tilfeldigvis hvordan man får ut informasjon av noen få felt i ett ark også? f.eks a4 b2 og c6 Lenke til kommentar
Moskus Skrevet 30. august 2004 Del Skrevet 30. august 2004 Jeg ville gjort det slik: 'Dim'er excel, workbook og ark som object Dim xl As Object Dim book As Object Dim sheet As Object 'Starter Excel og åpner et regneark xl = CreateObject("Excel.Application") xl.Visible = False book = xl.Workbooks.Open("C:\Test.xls") sheet = book.ActiveSheet sheet.Activate() 'Så kan vi hente ut verdier, til f.eks en variabel Dim strValue as String = sheet.Range(1, 1).Value 'Henter ut data fra A1 'Eller vi kan hente ut den matrise (eller array, om du vil) Dim iAntRad as Integer = 3 ' Henter inn 3 rader Dim iAntKol as Integer = 10 ' Henter inn 10 kolonner Dim aMyArray (iAntRad,iAntKol,) aMyArray = sheet.Range(sheet.Cells(1, 1), sheet.Cells(iAntRad + 1, iAntKol + 1)).Value 'Eventuelt hvis du ikke vil bruke sheet.Cells(x,x), kan du bruke Range direkte med celle-referansen. 'Da blir det slik Dim strValue as String = sheet.Range("A1").Value 'Henter ut data fra A1 'Og Matrise-uthentingen blir Dim iAntRad as Integer = 3 ' Henter inn 3 rader Dim iAntKol as Integer = 10 ' Henter inn 10 kolonner Dim aMyArray (iAntRad,iAntKol,) aMyArray = sheet.Range("A1:C10").Value 'Stenger objektene, viktig! xl = Nothing book = Nothing sheet = Nothing Selvfølgelig kan du også spesifisere hvilket regneark i "workbook'en" som skal åpnes. Istedenfor å skrive "sheet = book.ActiveSheet" kan du enkelt og greit skrive sheet = book.Sheets("NavnPåArk") Fordelen med denne metoden er at man kan styre Excel like mye fra Visual Basic 6.0 / .Net som man kan med makroene man kan skrive/spille inn i Excel. Du kan (nesten) ta makroer og kopiere dem inn i VB-koden din. Lykke til! (Dette kan være en morsom sammenblanding av VB6.0, VB.Net og VBA kode. Hvis noe av en usannsynlig grunn ikke skulle fungere, så si i fra) Lenke til kommentar
Lystig Skrevet 1. september 2004 Forfatter Del Skrevet 1. september 2004 Får feil på denne: xl = CreateObject("Excel.Application") Run-time error '91': Object variable or With block variable not set. Lenke til kommentar
aadnk Skrevet 1. september 2004 Del Skrevet 1. september 2004 Let etter nøkkelen Excel.Application under HKEY_CLASSES_ROOT ved å kjøre regedit.exe i RUN. Hvis du ikke klarer å finne den må du sannsynligvis installere Excel på nytt. Muligens kan du også prøve å registrere EXCEL.EXE, men jeg er dessverre ikke sikker om du også må registere andre filer, og i så fall hvilke. Du får bare prøve deg fram. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå