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:
我创建了一个宏来处理文档的 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: