How to allow external data refresh in protected worksheet in Excel?
You may have imported data from other applications to Excel with its build-in function - Get External Data, and updated the imported data easily by the Refresh All button. However, after protecting the worksheet, the Refresh All button is disabled and the imported data cannot be updated any more. How to allow external data refreshing in protected worksheet? Method in this article can help you.
- Reuse Anything: Add the most used or complex formulas, charts and anything else to your favorites, and quickly reuse them in the future.
- More than 20 text features: Extract Number from Text String; Extract or Remove Part of Texts; Convert Numbers and Currencies to English Words.
- Merge Tools: Multiple Workbooks and Sheets into One; Merge Multiple Cells/Rows/Columns Without Losing Data; Merge Duplicate Rows and Sum.
- Split Tools: Split Data into Multiple Sheets Based on Value; One Workbook to Multiple Excel, PDF or CSV Files; One Column to Multiple Columns.
- Paste Skipping Hidden/Filtered Rows; Count And Sum by Background Color; Send Personalized Emails to Multiple Recipients in Bulk.
- Super Filter: Create advanced filter schemes and apply to any sheets; Sort by week, day, frequency and more; Filter by bold, formulas, comment...
- More than 300 powerful features; Works with Office 2007-2019 and 365; Supports all languages; Easy deploying in your enterprise or organization.
The below VBA code can help you to refresh imported external data after protecting the worksheet in Excel. Please do as follows.
1. In the protected worksheet, press the Alt + F11 keys simultaneously to open the Microsoft Visual Basic for Applications window.
2. In the Microsoft Visual Basic for Applications window, click Insert > Module, then copy and paste the below VBA script into the Module window. See screenshot:
VBA code: Allow external data refresh in protected worksheet
Sub DataRefresh() 'Update by Extendoffice 5/28/2019 ActiveSheet.Unprotect "123" ActiveWorkbook.RefreshAll Application.OnTime Now + TimeValue("00:00:01"), "DataRefresh2" End Sub Sub DataRefresh2 () If Application.CommandBars.GetEnabledMso("RefreshStatus") Then Application.OnTime Now + TimeValue("00:00:01"), " DataRefresh2" Else ActiveSheet.Protect "123" End If End Sub
Note: In the VBA code, “123” is the password we specified to protect the worksheet. Please change it based on your needs.
3. Make sure your cursor is in the first Sub DataRefresh code section, and then press the F5 key to run the code. In the popping up Import File dialog box, please select the external file which you have imported data from, and then click the Import button.
After returning to the worksheet, you can see the external data is updated immediately.
Note: This code can refresh the external data in protected worksheet which imported from Access, Text as well as Excel file.
- How to allow edit objects in protected worksheet in Excel?
- How to allow merge cells within protected worksheet in Excel?
- How to allow spell check in a protected worksheet in Excel?
- How to protect cell formatting but only allow data entry in Excel?
You are guest
or post as a guest, but your post won't be published automatically.
- To post as a guest, your comment is unpublished.· 6 months agosorry, incorrect - read comments at stackoverflow first!
- To post as a guest, your comment is unpublished.· 6 months agoa more simple way is described here: https://stackoverflow.com/a/22088630/1349511
' code will not continue before Refresh finished
- To post as a guest, your comment is unpublished.· 1 years agoDzięki bardzo pomocne makro. Pozdrawiam