我正在尝试根据日期更改单元格格式,并使用Application.WorksheetFunction.Workday
,以便我可以考虑非工作日。
非工作日是通过指向主电子表格的链接引入的,该格式似乎不适合此功能,因为我收到运行时错误1004“无法获取WorksheetFunction的WorkDay属性。
有人知道我如何以一种可以使用的格式从另一个工作簿中获取此数据吗?
我尝试将非工作日值复制到另一行,尝试了各种格式设置技巧,甚至使用命名范围。所有人都给我相同的运行时代码1004。
如果删除[MPS_Data!Z4:Z100]
或手动键入日期,则代码有效,因此我认为这仅是格式问题。
下面是我的代码的测试示例,我们将提供任何帮助。
Sub Test()
Dim cell As Range
For Each cell In Sheet1.Range("Traffic_Light_Cells") 'Blank cells
If cell.Offset(0, 1).Value = "" And cell.Value >= Application.WorksheetFunction.WorkDay(Date, 1, [MPS_Data!Z4:Z100]) And cell.Value <= Application.WorksheetFunction.WorkDay(Date, 5, [MPS_Data!Z4:Z100]) Then
cell.Interior.Color = RGB(188, 253, 175)
cell.Font.Bold = True
cell.Font.Color = RGB(84, 130, 53)
End If
Next
答案 0 :(得分:0)
我假设您有一个End Sub,但是除此之外,您的WorkDay函数不像将公式输入电子表格中。您将需要使用VBA来调用MPS_data上的范围,如下所示:
而不是:Application.WorksheetFunction.WorkDay(Date, 1, [MPS_Data!Z4:Z100])
尝试引用以下范围:Application.WorksheetFunction.WorkDay(Date, 1, Sheets("MPS_data").Range("Z4:Z100"))
当您收到1004错误时,假期中的值可能不是预期的类型。检查您的MPS_Data!Z4:Z100
中是否有日期数据。我可以通过将假日列表中的日期更改为“ X”值来复制此错误