Avatar billede gladhund Nybegynder
18. oktober 2010 - 10:13 Der er 1 kommentar og
1 løsning

Run time errors (52, 76) men ikke på alle computere

Den her er jeg virkelig lost på, så jeg håber, at nogen kan hjælpe mig :(.

Jeg har udviklet længe på en app, og hovedsageligt på min egen maskine. Nu prøver jeg at åbne app'en på nogle andre maskiner, og der sker sære ting. Fx får jeg en RTE 52, når jeg åbner en formular, der kører IsFileOpen kode, fordi der skal hentes værdier fra en anden workbook. Dette fungerer fint på min egen maskine. Hvis nogen har ideer, smider jeg gerne min kode ind her...

Thanx
Avatar billede gladhund Nybegynder
18. oktober 2010 - 10:22 #1
Her er den kode der køres for at
1. se om filen allerede er åben
2. finde filnavnet ud fra hele stien
3. åbne filen, hvis den er lukket og ellers blot aktivere vinduet

Problemet er: "some other problem accessing the file".


' This function checks to see if a file is open or not. If the file is
' already open, it returns True. If the file is not open, it returns
' False. Otherwise, a run-time error occurs because there is
' some other problem accessing the file.

Function IsFileOpen(filename As String)
    Dim filenum As Integer, errnum As Integer

    On Error Resume Next  ' Turn error checking off.
    filenum = FreeFile()  ' Get a free file number.
    ' Attempt to open the file and lock it.
    Open filename For Input Lock Read As #filenum
    Close filenum          ' Close the file.
    errnum = Err          ' Save the error number that occurred.
    On Error GoTo 0        ' Turn error checking back on.

    ' Check to see which error occurred.
    Select Case errnum

        ' No error occurred.
        ' File is NOT already open by another user.
        Case 0
        IsFileOpen = False

        ' Error number for "Permission Denied."
        ' File is already opened by another user.
        Case 70
            IsFileOpen = True

        ' Another error occurred.
        Case Else
            Error errnum
    End Select

End Function




Function filnavn(str)
    filnavn = Mid(str, InStrRev(str, "\") + 1, Len(str))
End Function




Public Sub checkindsatsfelter()

'Se om filen med indsatsfelter allerede ER åben, så åbn ikke igen. Ellers åbn.

Dim indsatsfelterfil As String
indsatsfelterfil = Sheets("Opsætning").Range("C6").Value

    If IsFileOpen(indsatsfelterfil) Then
    Windows(filnavn(indsatsfelterfil)).Activate
    Else
    Workbooks.Open (indsatsfelterfil)
    End If

End Sub
Avatar billede gladhund Nybegynder
29. november 2010 - 10:57 #2
lukkes
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