Kontrollera om en arbetsbok är redan öppen

November 22

Makron används ofta för att skära, tärning, och bearbetning av information som finns i arbetsböcker. Detta förutsätter naturligtvis att den arbetsbok som innehåller information är faktiskt öppen. Om det inte är, då din makrot kommer naturligtvis att behöva innehålla kod för att faktiskt öppna behövs arbetsbok.

Öppna en arbetsbok kan verkligen bromsa ett makro; det tar tid att komma åt disken och ladda filen. Således, om ditt makro kan kontrollera om en arbetsbok är öppen innan du går igenom besväret faktiskt försöker öppna den, kan du snabba upp dina makron kraftigt om arbetsboken befinns redan vara öppen.

Ett mycket flexibelt sätt att närma sig uppgiften att kontrollera om en arbetsbok är öppen är att använda en funktion som gör kontrollen, och sedan helt enkelt returnerar ett SANT eller FALSKT värde baserat på om arbetsboken är öppen. Följande korta makrot utför denna koncis uppgift:

Funktion AlreadyOpen (sFname As String) As Boolean
Dim WKB Som arbetsbok
On Error Resume Next
Ställ WKB = arbetsböcker (sFname)
AlreadyOpen = Inte WKB är ingenting
Ställ WKB = Nothing
End Function

För att använda funktionen, bara ge det namnet på den arbetsbok som du vill kontrollera, på följande sätt:

sFileName = "MyFileName.xls"
Späth = "C: \ MyFolder \ MySubFolder \"
Om AlreadyOpen (sFileName) Then
"Har inte att öppna
Else
Workbooks.Open Späth & sFileName
End If

ExcelTips är din källa för kostnadseffektiv Microsoft Excel utbildning. Detta tips (10985) gäller Microsoft Excel 2007, 2010 och 2013. Du kan hitta en version av detta tips för den äldre menygränssnittet i Excel här: Kontrollera om en arbetsbok är redan öppen.