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