VBA Excel: 使 header 依赖于文件名

VBA Excel: Make header depend on filename

我创建了一个宏来处理文档的 lay-out、打印属性等。 现在我想添加一种方法使 header 依赖于文件名。如果文件名中有 W,则 header 应为 "Weekly report",在任何其他情况下应为 "Daily report".

这是应该处理的块:

If Filename.Contains("W") Then GoTo Week Else GoTo Day
Week:
    With ActiveSheet.PageSetup
    .LeftHeader = "Weekly report"
    End With
GoTo JumpToThere
Day:
    With ActiveSheet.PageSetup
    .LeftHeader = "Daily report"
    End With
JumpToThere:

(接着代码继续)

我在 IF 命令中不断收到 "Run-time error '424': Object required" 错误。 不好意思打扰了,我真的不太懂编码...

该代码不包含 Filename 声明和赋值,但如果它是 string 那么您应该替换:

If Filename.Contains("W") Then

If Filename Like "*W*" Then 

您还可以简化 if 语句中的逻辑,并去掉 GoTo:

With ActiveSheet.PageSetup
    If Filename Like "*W*" Then
      .LeftHeader = "Weekly report"
    Else
      .LeftHeader = "Daily report"
    End If
End With

编辑:

没有 Filename 属性 开箱即用。如果你想比较活动工作簿的名称,你应该使用:

If ActiveWorkbook.Name Like "*W*" Then

请确保您已声明 "Filename" 并且在 "Filename" 中即将出现正确的名称。然后像这样尝试 -

If InStr(Filename, "W") > 0 Then GoTo Week Else GoTo Day
    Week:
        With ActiveSheet.PageSetup
        .LeftHeader = "Weekly report"
        End With
    GoTo JumpToThere
    Day:
        With ActiveSheet.PageSetup
        .LeftHeader = "Daily report"
        End With
    JumpToThere: