18. oktober 2010 - 10:13Der 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...
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
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
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.