VBA - IF ElseIf with .Visible = True/False

VBA - IF ElseIf with .Visible = True/False

我希望我能在我 运行 遇到的 VBA 问题上得到一些帮助,但首先我想说我绝不是 VBA 的专家, 或接近那个的任何地方......但是,我渴望学习!

我在 MS Access 2010 中处理报告并使用 VBA,我隐藏了 1 页页脚并根据页码显示另一页页脚。我遇到的问题是我需要在报告中使页脚可见和不可见两次。我尝试使用 IF ELSEIF,但它似乎不起作用。这段代码看起来正确吗?还是我做错了什么?

If Me.Page <= 2 Then
    Me.PageFooter1.Visible = True
    Me.PageFooter2.Visible = False
ElseIf Me.Page >= 9 Then
    Me.PageFooter1.Visible = True
    Me.PageFooter2.Visible = False
Else
    Me.PageFooter1.Visible = False
    Me.PageFooter2.Visible = True
End If

提前感谢您的帮助!

嗯,前两个条件做同样的事情:

If Me.Page <= 2 Then
    Me.PageFooter1.Visible = True
    Me.PageFooter2.Visible = False
ElseIf Me.Page >= 9 Then
    Me.PageFooter1.Visible = True
    Me.PageFooter2.Visible = False

页数小于等于2,还是页数大于等于9,则:

Me.PageFooter1.Visible = True
Me.PageFooter2.Visible = False

否则(因此,如果页面大于 2 但小于 9):

Me.PageFooter1.Visible = False
Me.PageFooter2.Visible = True

将改写为:

 If Me.Page <= 2 Or Me.Page >= 9 Then
     Me.PageFooter1.Visible = True
     Me.PageFooter2.Visible = False
 Else
     Me.PageFooter1.Visible = False
     Me.PageFooter2.Visible = True
 End If

但那看起来还是很奇怪。看起来你有 2 "footer styles" 在这里进行。引入这个概念怎么样?

 Dim showFooterStyle1 As Boolean
 showFooterStyle1 = (Me.Page <= 2 Or Me.Page >= 9)

 Me.PageFooter1.Visible = showFooterStyle1
 Me.PageFooter2.Visible = Not showFooterStyle1

现在,从您提出的问题来看,您并不清楚这是否就是您要实现的目标。但至少应该更容易看出问题出在哪里。