有谁会用excel编个宏之类的,使得我输入一个数字自动换到右边一个而不用我按向右的键 不??

我要输入的就是1,2,3,4,5,数据量很大,少按一个键盘可以省很多时间

1、选定一个区域,输入内容按ENTER键,(不要用方向键)。
2、转:把下面的代码加入到模块中,如果希望每次打开文件都创建菜单,就在workbook的open事件中加入运行过程CreateMenu的代码就可以了:
Sub createMenu()
On Error Resume Next
delcontrol
With CommandBars("worksheet menu bar").Controls.Add(msoControlPopup)
.Caption = "换行"
With .Controls.Add(msoControlButton)
.Caption = "设置换行"
.OnAction = "fdd_proc"
End With
End With

End Sub

Sub fdd_proc()
On Error Resume Next
currentName = CommandBars("worksheet menu bar").Controls("换行").Controls("设置换行").Caption
If Err.Description <> "" Then
Err.Clear
currentName = "取消换行"
delCode
Else
currentName = "设置换行"
addCode
End If
With CommandBars("worksheet menu bar").Controls("换行").Controls(currentName)
.Caption = Array("设置换行", "取消换行")(IIf(currentName = "设置换行", 1, 0))
End With
End Sub
Sub addCode()
Selection.WrapText = True
On Error Resume Next
With ThisWorkbook.VBProject.VBComponents("ThisWorkBook").CodeModule
x = .ProcStartLine("Workbook_SheetSelectionChange", vbext_pk_Proc)
If Err.Description = "" Then
.DeleteLines .ProcStartLine("Workbook_SheetSelectionChange", vbext_pk_Proc), .ProcCountLines("Workbook_SheetSelectionChange", vbext_pk_Proc)
End If
s = "Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)" & vbCrLf
s = s & " Target.WrapText=true" & vbCrLf
s = s & "End Sub"
.AddFromString s
End With
End Sub
Sub delCode()
Selection.WrapText = False
On Error Resume Next
With ThisWorkbook.VBProject.VBComponents("ThisWorkBook").CodeModule
.DeleteLines .ProcStartLine("Workbook_SheetSelectionChange", vbext_pk_Proc), .ProcCountLines("Workbook_SheetSelectionChange", vbext_pk_Proc)
End With
End Sub
Sub delcontrol()
On Error Resume Next
CommandBars("worksheet menu bar").Controls("换行").Delete
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-11-01
工具,选项,编辑,ENTER后方向选向右,确定
第2个回答  2009-11-01
晕死,你就是用了宏,也得每次一个个的按宏按钮吧,还不如直接按TABLE键呢,省事多了
第3个回答  2009-11-02
同意:
工具,选项,编辑,ENTER后方向选向右,确定

把回车设置成向右
第4个回答  2009-11-02
太简单了.... 见我空间
相似回答