为啥我在尝试执行时间戳用户定义函数时遇到运行时错误(范围)

Posted

技术标签:

【中文标题】为啥我在尝试执行时间戳用户定义函数时遇到运行时错误(范围)【英文标题】:why do i run into a runtime error (range) when im trying to execute a timestamp user defined function为什么我在尝试执行时间戳用户定义函数时遇到运行时错误(范围) 【发布时间】:2021-08-28 12:25:53 【问题描述】:

我有一张希望人们手动填充的表格

其中一个列是日期和时间戳,而不是手动输入,因为它对于 excel 上的新手来说非常尴尬我已经创建了一个用户定义的函数并分配给一个按钮...选择你想要时间戳...单击我制作的按钮..时间戳出现在单元格中...一切正常

但是

我需要锁定和保护工作表上的某些列,只留下一个表格供人们填充 当我这样做时,它会遇到关于范围的运行时错误?!我不明白为什么它只是不受保护的表中的一个单元格需要更新?

下面用户定义函数的代码

Sub Timestamp()

Dim ts As Date

With Selection
.Value = Now
.NumberFormat = "dd/mm/yyyy h:mm:ss AM/PM"

End With

End Sub

任何帮助表示赞赏

谢谢一百万

【问题讨论】:

您是否在protect sheet 之前设置了cells 以允许编辑? 我所做的只是保护标签页(我事先解锁了表格中的所有单元格,以便用户可以操作) 【参考方案1】:

如果您需要在受保护的工作表上执行 VBA 代码,我将始终建议 protect 您的工作表使用 VBA,以便它可以绕过受保护的范围并成功更新您的时间戳:

将此代码复制到ThisWorkBook 将保护特定的 WS,但允许 VBA 在锁定的单元格上写入值

Sub Workbook_Open()
Sheet1.Protect Password:="xxx", UserInterfaceOnly:=True, 
End Sub

【讨论】:

谢谢您,先生,我会尽力向您报告 当然,如果解决了您的问题,请接受答案:) 嗨,如果我需要保护多张工作表怎么办...基本上我有 5 个需要填充的输入工作表。我需要保护所有 5 个,然后我有一张使用 VBA 合并它们的工作表 您可以使用代码来保护更多的工作表,当您使用 VBA 合并它们时仍然可以使用,请先尝试查看。 太棒了!它确实有效!你是一个传奇先生:D

以上是关于为啥我在尝试执行时间戳用户定义函数时遇到运行时错误(范围)的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在尝试使用 Visual Studio Analyzer 时遇到错误?

为啥调用未定义函数时没有 PHP 错误?

为啥我在尝试实现 Hibernate 多对多映射时遇到此错误?

OCaml 用户定义类型和函数返回错误

为啥我在使用 zip 或直接使用编辑器在 gcloud 中部署 nodejs 函数时遇到错误?

为啥我在安装 Nodemon 时遇到错误?