【发布时间】:2016-04-07 18:20:22
【问题描述】:
- Worksheet(1) 是受保护的输入表,其中只有某些单元格未解锁。此工作表上有一个调用用户表单的按钮。
- 用户窗体具有用于输入值的各种文本框和组合框等,然后将输入的数据放入第二个工作表 (2)。
- Worksheet(2) 根据输入到用户表单的值锁定和解锁某些单元格,然后受到保护。
问题是,当上述操作完成后,使用 Worksheet(2) 中的箭头键选择 Worksheet(1) 中未锁定的单元格地址,并完全忽略它应该选择的未锁定单元格!
Worksheet(1) 中的一些未锁定单元格存在“更改”事件,但是当在 Worksheet(2) 中编辑这些相同的单元格时,Worksheet(1) 事件会触发!
就好像两个工作表已被分组或合并,Worksheet(1) 的设置覆盖了 Worksheet(2) 的设置。
当从 Worksheet(2) 调用用户表单时,一切正常!我也需要用户表单才能从 Worksheet(1) 工作。
我已经在另一台使用 Excel 2013 和 2016 的计算机上测试了该文件,但我仍然遇到这种奇怪的行为。
按钮的命令是:
userform.show
初始化代码为:
Private Sub UserForm_Initialize()
Dim SYear As Long
Dim LYear As Long
Dim FWeek As Long
SYear = Evaluate("SetYear")
If (Year(Date) Mod 4) Then
LYear = 52
Else
LYear = 53
End If
FWeek = Val(SYear & LYear)
Sheets("Data").Range("AX1").Value = Evaluate("RetailWeek")
Sheets("Data").Range("AX2").Value = FWeek
WeekSel.List = Array("Week 1", "Current Week")
Channel.List = Array("Company", "Franchise", "eComm")
Me.Top = Application.Top + 20
Me.Left = Application.Left + 200
Me.WFrom.RowSource = "WeekFrom"
Me.WTo.RowSource = "WeekTo"
End Sub
【问题讨论】:
-
我建议您发布加载用户表单并填充单元格的代码,或者最好发布文件的副本。
-
我还应该提到,使用 ctrl-pgup 或 ctrl-pgdn 在其他工作表之间切换通常会“重置” Worksheet(2),就像使用分组工作表一样,并且解锁的单元格变得可选择再次。
-
如果你使用
Application.ScreenUpdating = False,你最后是否也有Application.ScreenUpdating = True? -
嗨@EganWolf,是的,我有,每当我使用它时。
-
您是在无模式显示此表单,还是在使用箭头键之前将其关闭?我怀疑这是一个 SDI 错误。