我曾經建立了一個VBA按鈕,自動鎖定所有細胞中數據的所有單元格。它的工作完美。現在我想將該按鈕複製到另一個工作表中。於是我創建了另一個按鈕,複製並粘貼了整個VBA,然後編輯了工作表名稱和範圍。而且,它只能在5%的時間內工作,其餘時間,我得到了「運行時錯誤'1004':沒有找到細胞。」我已經嘗試了一些固定的,將Sheets更改爲Worksheets,或者添加「,23」到specialcells參數。然而,現在沒有任何工作。當我嘗試加入時,有時會說rng和lckrng都是空的,有時候只顯示鎖定爲空,而不顯示rng。問題在於它曾經是一個工作代碼,現在它仍然可以工作大約5%的時間。任何想法爲什麼?非常感謝你!Excel的VBA代碼,以選擇具有數據有時工作
Private Sub CommandButton1_Click()
Dim rng As Range
Dim lockrng As Range
Sheets("Uploading Checklist (M)").Unprotect Password:="signature"
Set rng = Range("A1:M14")
'Selecting hardcoded data and formulas
Set lockrng = Union(rng.SpecialCells(xlCellTypeConstants), rng.SpecialCells(xlCellTypeFormulas))
lockrng.Locked = True
Sheets("Uploading Checklist (M)").Protect Password:="signature"
End Sub
我想測試一下。在我開始之前,我猜你已經排除了格式不一致等問題(儘管如果將SpecialCells中的第二個參數留空,它應該選擇所有單元格,而不考慮格式)以及有關範圍的任何內容是不連續的? – neophlegm
你有沒有檢查過你是否在該範圍內有兩個常量和公式(即它不是全部常量或所有公式)? – YowE3K
另外,作爲一種思路:如果你在聯盟有30多個不連續區域作爲參數,我不知道你會得到一個錯誤:[https://msdn.microsoft.com/VBA/Excel-VBA/articles/應用程序聯合法-Excel中](https://msdn.microsoft.com/VBA/Excel-VBA/articles/application-union-method-excel) – neophlegm