Worsksheet的行为就像分组一样,当它不是时

  1. 工作表(1)是一个受保护的input表,其中只有特定的单元格被解锁。 这张表上有一个调用一个用户窗体的button。
  2. 用户表单具有各种文本框和combobox等input值,然后将input的数据放入第二个工作表(2)。
  3. 工作表(2)根据input到用户表单中的值locking和解锁某些单元,然后进行保护。

问题是,上述完成时,使用工作表(2)中的箭头键select在工作表(1)中解锁的单元格地址,并完全忽略它应该select的未locking的单元格!

Worksheet(1)中有一些未locking的单元格存在“正在更改”事件,但是当在Worksheet(2)中编辑了这些相同的单元格时,Worksheet(1)事件触发!

就好像这两个工作表已被分组或合并,而Worksheet(1)的设置将覆盖Worksheet(2)的设置。

从工作表(2)调用用户窗体时,一切正常! 我需要用户窗体也从工作表(1)工作。

我已经用Excel 2013&2016在另一台计算机上testing了这个文件,而且我仍然感到这个奇怪的行为。

该button的命令是:

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 

我从userform模块中移出了一大块代码,并把它放到一个普通的模块中。 也有很多值由用户表单从工作表(1)读取并复制到工作表(2)。 我将这些值转移到第三个工作表,然后closures用户窗体后,工作表(2),它现在似乎工作正常。

手指,脚趾和眼睛交叉!