我们正在使用Excel文件将数据上传到DB。在excel中有多张工作表。在第一张工作表中有一个按钮(名为Export)将所有数据从剩余工作表导出到DB。我在一张纸上写了基于逻辑的锁定单元格。以下是代码。
Function LockingExpiryDateCells(ByVal Target As Range, ByVal ExpDateColOffset, ByVal Expdate As String)
Dim rowCount As Integer
rowCount = Range("A" & Rows.Count).End(xlUp).Row ' get the count of rows that contains records
ActiveSheet.Unprotect
Cells.Locked = False
If (ExpDateColOffset >= 0) Then
Target.Cells.Offset(0, ExpDateColOffset).Value = Expdate
End If
For i = 7 To rowCount
If (Cells(i, 4) = "A") Then
Cells(i, 7).Locked = True
Else
Cells(i, 7).Locked = False
End If
Next i
ActiveSheet.Protect
结束功能
导出时(通过单击“导出”按钮),我收到以下错误。 谷歌搜索时,我认为这是保护工作表的原因(每个工作表都有一个宏用于验证内容)。 所以我给了代码以避免这个错误
Private Sub Worksheet_Deactivate()
Worksheets(Index).UnProtect
End Sub
然后这个错误就消失了。并且在我的系统中一切正常。所以我部署到QA。测试时我注意到导出按钮一直处于禁用状态。
当我还原更改时,按钮已启用。
我无法找到解决此问题的任何解决方案。
请给出任何解释。
提前致谢。
答案 0 :(得分:-1)
如果您有密码,则应添加optional参数。
rowCount =范围(" A"& Rows.Count).End(xlUp).Row
在这里和以下情况下,尝试添加表格地址,如:
rowCount = Sheet(1).Range(" A"& Rows.Count).End(xlUp).Row