Worksheet_SelectionChange不从Selection.Offset触发

我正在尝试使用给定列中单元格的select作为事件。 这个工程,如果我物理鼠标点击或箭头到列中的单元格。

我想尽pipe,通过使用Selection.Offset或ActiveCell.Offset或类似的东西来到这个列。 但是,当给定列中的单元格通过此偏移量函数被选中时,它似乎并不算作SelectionChange事件,因此不会激活我的下一个macros。

  1. 当数据input“高度”列时,调用Height_To_Comments()
  2. Height_To_Comments()从同一行的“高度”移到“注释”
  3. 有或没有数据input,在“评论”列中,ENTER调用Comments_To_Weight()
  4. Comments_To_Weight()从“注释”向下移动回“重量”

    Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("H3:H52")) Is Nothing Then Call Height_To_Comments End If End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) x = 0 For Each cell In Target If cell.Column <> 13 Then x = 1 Application.OnKey "~" Application.OnKey "{ENTER}" Next cell If x = 0 Then Application.OnKey "~", "Comments_To_Weight" Application.OnKey "{ENTER}", "Comments_To_Weight" End If End Sub Sub Height_To_Comments() Selection.Offset(-1, 5).Select End Sub Sub Comments_To_Weight() Selection.Offset(1, -7).Select End Sub 

我解决了它。
只有在评论栏本身已经有select改变(而不是在光标到达评论栏之前的先前高度栏)之后,我才改变了“〜”和“{ENTER}”的function。 我改变了它,所以当在高度栏中进行select改变时,那么“〜”和“{ENTER}”的function改变。 因此,一旦数据input到高度,工作表将标记为注释,然后当用户敲击ENTER或正确返回到下一行的权重时,而不是进入下一行,然后下一次input被打到下一行并留下7列。

If cell.Column <> 13 Then x = 1If cell.Column <> 8 Then x = 1更改If cell.Column <> 13 Then x = 1 If cell.Column <> 8 Then x = 1