1、開新EXCEL,並把你的表格布置好
2、按下 ALT + F11 進入VBA 編輯功能裡
3、在左側專案窗格裡找到"工作表1",在上面按滑鼠右鍵→檢視程式碼
4、右邊會出現程式碼窗格,內容是空的,把以下的程式碼貼上即可
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim KeyCells As Range
  Set KeyCells = Range("K3")
  If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
  ' 在 K3 格發生變化時才執行以下事件
    lastusedrow = ActiveSheet.Cells.Find(What:="*", SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlFormulas).Row + 1
    For i = 1 To lastusedrow
        If IsEmpty(ActiveSheet.Cells(i, 2)) Then
            '如果 Bn列為空
            ActiveSheet.Cells(i, 2).Value = KeyCells.Value
            Exit For
        End If
        
        If IsEmpty(ActiveSheet.Cells(i, 5)) Then
            '如果 En列為空
            ActiveSheet.Cells(i, 5).Value = KeyCells.Value
            Exit For
        End If
    Next
  End If
End Sub
5、如果解決你的問題,請給分,不然.....
'跳下一個「空白」的儲存格
Sub BEJump()
    Range("B1024").End(xlUp).Offset(1, 0).Select
    If IsEmpty(ActiveCell.Offset(-1, 3)) Then
        ActiveCell.Offset(-1, 3).Select
    End If
End Sub
'只有修改 K欄 的值時才會跳
Private Sub Worksheet_Change(ByVal Target As Range)
    If Left(Target.Address, 2) = "$K" Then
        Call Module1.BEJump
    End If
End Sub