我创建了一个宏,负责处理文档的布局,打印属性等。 现在我想添加一种方法来使头文件依赖于文件名。如果在文件名中找到W,则标题应为"每周报告",在任何其他情况下,它应该是"每日报告"。
这是应该处理的大块:
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命令出错。 很抱歉打扰,我真的不太了解编码...
答案 0 :(得分:0)
代码不包含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
答案 1 :(得分:0)
请确保您已声明"文件名"并在"文件名"正确的名字即将来临。然后尝试这样 -
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: