標題:
[發問]
該如何輸入完資料後,自動往下一儲存格繼續輸入資料
[打印本頁]
作者:
yueh0720
時間:
2011-7-19 12:58
標題:
該如何輸入完資料後,自動往下一儲存格繼續輸入資料
[attach]7053[/attach]
有筆資料輸入,該如何簡化按鍵使用
輸入姓名,國文分數,英文分數,自動跳至下一個姓名輸入位置("B4")
數量500名學生,
作者:
GBKEE
時間:
2011-7-19 13:39
回復
1#
yueh0720
該工作表儲存格有輸入時的預設事件
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, R1%, R2%
Set Rng = Range("B2").CurrentRegion
'CurrentRegion以任意空白列及空白欄的組合為邊界的連續範圍
If Not Application.Intersect(Target(1), Rng) Is Nothing Then 'Rng的範圍包含Target(1)的位址
'Target(1) ->工作表所選擇範圍的第一個儲存格
If Target(1).Row = Rng.Row Then Exit Sub ' 在第一列
R1 = Rng.Column '第一欄的 欄數
R2 = Rng(1, Rng.Columns.Count).Column '最後一欄的 欄數
If Application.CountA(Range(Cells(Target(1).Row, R1), Cells(Target(1).Row, R2))) = Rng.Columns.Count Then
'有資料數的儲存格=Rng的總欄數
Cells(Target(1).Row + 1, R1).Select '選擇下一列的第1欄
End If
End If
End Sub
複製代碼
作者:
yueh0720
時間:
2011-7-19 13:52
忘了需要增加輸入姓名後,自動往國文分數儲存格移動
作者:
GBKEE
時間:
2011-7-19 16:32
回復
3#
yueh0720
試試看
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, R1%, R2%
Set Rng = Range("B2").CurrentRegion
'CurrentRegion以任意空白列及空白欄的組合為邊界的連續範圍
If Not Application.Intersect(Target(1), Rng) Is Nothing Then 'Rng的範圍包含Target(1)的位址
'Target(1) ->工作表所選擇範圍的第一個儲存格
If Target(1).Row = Rng.Row Then Exit Sub ' 在第一列
R1 = Rng.Column '第一欄的 欄數
R2 = Rng(1, Rng.Columns.Count).Column '最後一欄的 欄數
If Application.CountA(Range(Cells(Target(1).Row, R1), Cells(Target(1).Row, R2))) = Rng.Columns.Count Then
'有資料數的儲存格=Rng的總欄數
Cells(Target(1).Row + 1, R1).Select '選擇下一列的第1欄
Else '有資料數的儲存格<>Rng的總欄數
If Target(1) <> "" Then
R2 = IIf(Target(1).Column = R2, R1, Target(1).Column + 1)
'如為最後一欄的 返回第1欄 否往右一欄
Cells(Target(1).Row, R2).Select '往右一欄
End If
End If
End If
End Sub
複製代碼
作者:
yueh0720
時間:
2011-7-19 17:30
版主,我將A欄設定為座號後,輸入完英文分數,即跳至座號欄位去
無法跳至姓名欄位
作者:
GBKEE
時間:
2011-7-19 17:40
回復
5#
yueh0720
你不附上檔案,我會一直在瞎子摸象的
作者:
yueh0720
時間:
2011-7-19 17:52
沒有檔案,只是製作一個資料表格,多一個座位號碼在A欄
其它不會再更改新增了,
作者:
av8d
時間:
2011-7-19 18:31
本帖最後由 av8d 於 2011-7-19 19:19 編輯
回復
1#
yueh0720
假設你的最後一欄資料是英文好了,如果是要從英文D3跳到B4,然後輸入到D4直接跳到B5,我倒是有一個方法。
工具→巨集→錄至新巨集→快速鍵Ctrl+?(自行設定)(我是設定Q)→停止錄製→
Alt+F11→打開Macro1→Range("A" & ActiveCell.Row + 1).Select 將這段放入巨集內(如下圖)
Sub Macro1()
'
' Macro1 Macro
' Allen 在 2011/7/19 錄製的巨集
'
Range("A" & ActiveCell.Row + 1).Select
'
End Sub
複製代碼
只要您每次輸入到最後一欄,按下Ctrl+?(自行設定)(我是設定Q),即可跳到下一列的B欄。
如果還有不懂在發問囉!祝您早日完成成績表。
作者:
Hsieh
時間:
2011-7-19 19:05
這樣的問題,如果自己不去了解程式碼
沒人可以一再的幫你更改
作者:
GBKEE
時間:
2011-7-19 19:34
回復
7#
yueh0720
這樣的問題,如果自己不去了解程式碼,沒人可以一再的幫你更改
你1樓的表單開頭在B2 -> Set Rng = Range("
B2
").CurrentRegion 'CurrentRegion以任意空白列及空白欄的組合為邊界的連續範圍
那你想
資料表格,多一個座位號碼在A欄
這程式碼要改哪裡?
作者:
yueh0720
時間:
2011-7-20 10:53
版主,謝謝
程式碼我試修改看看,若有問題在請教
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)