VBA 运行- 运行完美的例程中的时间错误“1004”
VBA Run-time error '1004' in a routine that has worked flawlessly
我有一个受保护的表单,可以将用户输入的内容从打开的单元格组织到另一个 excel sheet 并通过电子邮件发送给特定的人。这种形式多年来一直完美无缺,但昨天突然抛出 运行 时间错误“1004”:应用程序定义或对象定义的错误。当我在表单中输入任何内容时,错误立即出现,调试器突出显示以下代码行。
Range("AL6").Font.Color = vbWhite
在用户添加信息的表单上,对用户开放的单元格范围从 AF6-AK6 和自动填充明天的日期。 AL6 在这之外并受到保护。单元格 'AL6' 中没有任何内容,也不应该有。这是错误所在的代码块。
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Time > 15 / 24 And Range("AF6") = Application.WorksheetFunction.WorkDay(Date, 0) Then
Range("AL6").Font.Color = vbRed
Else
Range("AL6").Font.Color = vbWhite
End If
End Sub
表格也定期保存,所以我不认为这是自我复制和损坏的问题。我也不能排除这种可能性。有什么想法吗?
该问题似乎与 sheet 保护有关。
您可以将单元格 "AL6" 设置为 locked = false,或者您可以使用 Workbook_Open 事件仅应用用户界面锁定,这将允许 VBA 到 运行 好像解锁了:
例如:
Private Sub Workbook_Open()
Thisworkbook.sheets("<put your sheet name here>").Protect "Password", UserInterfaceOnly := True
End Sub
有关 UserInterfaceOnly 的更多信息:Protecting cells in Excel but allow these to be modified by VBA script
我有一个受保护的表单,可以将用户输入的内容从打开的单元格组织到另一个 excel sheet 并通过电子邮件发送给特定的人。这种形式多年来一直完美无缺,但昨天突然抛出 运行 时间错误“1004”:应用程序定义或对象定义的错误。当我在表单中输入任何内容时,错误立即出现,调试器突出显示以下代码行。
Range("AL6").Font.Color = vbWhite
在用户添加信息的表单上,对用户开放的单元格范围从 AF6-AK6 和自动填充明天的日期。 AL6 在这之外并受到保护。单元格 'AL6' 中没有任何内容,也不应该有。这是错误所在的代码块。
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Time > 15 / 24 And Range("AF6") = Application.WorksheetFunction.WorkDay(Date, 0) Then
Range("AL6").Font.Color = vbRed
Else
Range("AL6").Font.Color = vbWhite
End If
End Sub
表格也定期保存,所以我不认为这是自我复制和损坏的问题。我也不能排除这种可能性。有什么想法吗?
该问题似乎与 sheet 保护有关。
您可以将单元格 "AL6" 设置为 locked = false,或者您可以使用 Workbook_Open 事件仅应用用户界面锁定,这将允许 VBA 到 运行 好像解锁了:
例如:
Private Sub Workbook_Open()
Thisworkbook.sheets("<put your sheet name here>").Protect "Password", UserInterfaceOnly := True
End Sub
有关 UserInterfaceOnly 的更多信息:Protecting cells in Excel but allow these to be modified by VBA script