Every time Kevin opens one particular Excel workbook, he sees a notice that the "file is in use" and is locked for editing, with the username being his own. He knows he doesn't have this workbook open. He's saved the workbook under a new name, but he still gets the same "in use" message when opening the new file.
There are a couple of things that may be causing the issue. The first thing to check is to get out of Excel and see if there is a "lock file" for the workbook. (These are sometimes called "owner files" or "semaphore files.") When you first open a workbook, Excel creates the lock file to indicate that the workbook is in use. This file is essentially the name of the opened workbook preceded by a tilde and a dollar sign. Thus, if you open a file named MyFile.xlsx, then the lock file will be named ~$MyFile.xlsx.
The lock file should be automatically deleted when you close the workbook with which it is associated. If something interferes with deleting the lock file (such as Excel crashing or not closing normally), then the next time you open the workbook, it will show as "in use."
Go ahead and get out of Excel, then use Explorer to navigate to the folder in which the workbook is stored. Check to see if the lock file is in that folder. In order to see any left-over lock files, you'll need to make sure you have Windows configured to display all hidden files. (Lock files are hidden, by default.) If you see the file, simply delete it, and you should be fine on restarting Excel.
Another possible cause of the problem is the way that Windows Explorer interacts with files. A popular way to use Explorer is to leave the Preview pane open at the right side of the Explorer window. With the pane turned on, you are shown a preview of whatever file you have selected in the Explorer window. In order to display the preview, Explorer must open the file, and this can cause "false positives" if you have a workbook selected and you try to open the workbook through Explorer.
The solution in this situation is to simply get out of Explorer and open the workbook or close the Preview pane in Explorer. Either way should allow you to open the workbook just fine.
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (13692) applies to Microsoft Excel 2007, 2010, 2013, 2016, 2019, 2021, 2024, and Excel in Microsoft 365.
Create Custom Apps with VBA! Discover how to extend the capabilities of Office 365 applications with VBA programming. Written in clear terms and understandable language, the book includes systematic tutorials and contains both intermediate and advanced content for experienced VB developers. Designed to be comprehensive, the book addresses not just one Office application, but the entire Office suite. Check out Mastering VBA for Microsoft Office 365 today!
Having trouble saving a workbook? It could have to do with the age, size, and complexity of that workbook. This tip ...
Discover MoreWhen you need to work on a workbook, you may want to do so without modifying the original contents of the workbook. This ...
Discover MoreAs you work with a workbook (particularly one that contains macros) you may notice that the workbook size can become ...
Discover MoreFREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
2026-06-11 09:37:55
J. Woolley
My Excel Toolbox includes the following dynamic array function:
=ListUserStatus([SkipHeader])
This function lists name, last activity (date/time), and type (exclusive/shared) for each user that has the formula cell's workbook open. Here's an abbreviated version:
Function ListUserStatus()
Dim v As Variant, A() As String, T() As String, n As Long
With Application
If TypeOf .Caller Is Range Then
.Volatile
v = .Caller.Worksheet.Parent.UserStatus
Else
v = ActiveWorkbook.UserStatus
End If
End With
n = UBound(v)
If n = 0 Then ListUserStatus = "No User Status": Exit Function
ReDim A(0 To n, 0 To 2)
A(0, 0) = "User"
A(0, 1) = "Last Activity"
A(0, 2) = "Type"
T = Split("Exclusive Shared")
For n = 1 To UBound(v)
A(n, 0) = v(n, 1)
A(n, 1) = CStr(CDate(v(n, 2)))
A(n, 2) = T(v(n, 3) - 1)
Next n
ListUserStatus = A
End Function
See https://sites.google.com/view/MyExcelToolbox
Also, see https://excelribbon.tips.net/T013566_Who_Has_the_Workbook_Open.html
Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.
FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2026 Sharon Parq Associates, Inc.
Comments