Avatar billede jogii Nybegynder
15. november 2007 - 14:52 Der er 5 kommentarer og
1 løsning

Exportere Excel-data via COM eller lignende

Jeg vil importere nogle regnearksdata fra Excel til Lotus Notes.
Lotus Notes er en database, som er lidt VBA kompatibel.

Jeg har nogle regneark liggende i et bibliotek, hvor der i første faneblad ligger nogle simple data som skal importeres.

Mit problem er at lave noget COM/VBA kode som tilgå det FØRSTE Sheet, ligemeget hvad det hedder, og derefter traversere igennem til sidste række med at "udskrive" alle kolonner.

Jeg har før prøvet det, men dengang var der problemer med at importen fejlede hvis fanebladet hed noget andet end "A".

Og noget kode med 2 for-løkker  vil også vække lykke !!!
Avatar billede jogii Nybegynder
15. november 2007 - 17:10 #1
Jeg fandt langt om længe noget på nettet.

http://www.exceltip.com/st/Read_information_from_a_closed_workbook_using_VBA_in_Microsoft_Excel/473.html

With the macros below you can read values and text from cells in closed workbooks.
The example macros shows how you can read the value from cell A1 in Sheet1 in all workbooks in a given folder.

Sub ReadDataFromAllWorkbooksInFolder()
Dim FolderName As String, wbName As String, r As Long, cValue As Variant
Dim wbList() As String, wbCount As Integer, i As Integer
    FolderName = "C:\Foldername"
    ' create list of workbooks in foldername
    wbCount = 0
    wbName = Dir(FolderName & "\" & "*.xls")
    While wbName <> ""
        wbCount = wbCount + 1
        ReDim Preserve wbList(1 To wbCount)
        wbList(wbCount) = wbName
        wbName = Dir
    Wend
    If wbCount = 0 Then Exit Sub
    ' get values from each workbook
    r = 0
    Workbooks.Add
    For i = 1 To wbCount
        r = r + 1
        cValue = GetInfoFromClosedFile(FolderName, wbList(i), "Sheet1", "A1")
        Cells(r, 1).Formula = wbList(i)
        Cells(r, 2).Formula = cValue
    Next i
End Sub

Private Function GetInfoFromClosedFile(ByVal wbPath As String, _
    wbName As String, wsName As String, cellRef As String) As Variant
Dim arg As String
    GetInfoFromClosedFile = ""
    If Right(wbPath, 1) <> "\" Then wbPath = wbPath & "\"
    If Dir(wbPath & "\" & wbName) = "" Then Exit Function
    arg = "'" & wbPath & "[" & wbName & "]" & _
        wsName & "'!" & Range(cellRef).Address(True, True, xlR1C1)
    On Error Resume Next
    GetInfoFromClosedFile = ExecuteExcel4Macro(arg)
End Function
Avatar billede jogii Nybegynder
15. november 2007 - 17:25 #2
Nå, det var alligevel ikke det rigtige .... :-(
Avatar billede jlemming Nybegynder
16. november 2007 - 12:54 #3
Jeg er ikke helt klar over var du mener, men du læser 1. ark med følgende:
forste = Sheets(1).Name

hva mener du med:
og derefter traversere igennem til sidste række med at "udskrive" alle kolonner.
Avatar billede jogii Nybegynder
16. november 2007 - 13:12 #4
Jeg har oprettet et andet spm under script og selv fundet løsningen.

http://www.eksperten.dk/spm/806012

Men det jeg efterspurgte var en For alle rækker og for alle kolonner, hent celleværdien. Det er det jeg kalder at traversere.
Avatar billede jlemming Nybegynder
16. november 2007 - 13:35 #5
Ok, Husk at lukke dine spm. læg selv svar og accepter det
Avatar billede jogii Nybegynder
16. november 2007 - 13:39 #6
yeps, er igang :-)
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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