根据另一个单元格的内容填充单元格的默认值

根据另一个单元格的内容填充单元格的默认值

我们使用电子表格作为时间卡。模板存储在服务器中,并在个人桌面上有指向该模板的链接。

我正在尝试找出有助于实现以下情况的 VB 代码:当用户名单元格 (B5) 为空时,代码将在 (B7) 中填充下周日的日期。用户在 B5 中输入姓名后,B7 的值不应更改。

如果我=IF(B5="",TODAY()+8-WEEKDAY(TODAY()),B7)在 B7 中使用公式(),则需要启用循环引用,这不遵循电子表格的模板,从而导致每个人都出现错误。

公司表示,由于导入软件的原因,工作表需要放在 Excel 中。否则,我会使用 Word 并使用“CreateDate”函数来实现相同的目的。

我一直在尝试学习 VB 来实现这一点,但我希望一些专家可以在 5 分钟内帮我写出代码,然后让我分析一下。

答案1

您可以使用该程序自动打开,每次打开工作簿时都会自动执行。启动 VBA 编辑器 ( ALT+ F11),插入一个新的 VBA 模块并复制粘贴下面的代码。将其保存,您就可以开始了。

该代码看起来很像您已有的公式:

Sub Auto_Open()
    Const Sheetname = "Sheet1"
    Const NameCell = "B5"
    Const DateCell = "B7"

    If IsEmpty(Worksheets(Sheetname).Range(NameCell).Value) Then
        Worksheets(Sheetname).Range(DateCell).Value = Date + 8 - Weekday(Date)
    End If
End Sub

相关内容