写一段简单的excel vba代码 完美的再加50分

过程是这样的
首先是在我选中的单元格 比如说我选中了A3 就在A3 里输入A
然后按回车 按了回车 光标下移了一个单元格 就在下一个 A4里输入p
在按回车 在A5里输入9
按回车这个过程必须要有

第1个回答  2011-09-12
'插入一个模块,将以下代码复制到其中:
Public ingI As Integer
Public ingRow As Integer
Public ingColumn As Integer
Public strAddress As String

'将以下代码复制到"ThisWorkbook"模块里:
Private Sub Workbook_Open()
ingRow = -1
ingColumn = -1
Application.MoveAfterReturn = False
End Sub

'将以下代码复制到要使用的工作表(如"Sheet1")模块里:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If strAddress <> "" Then
If Range(strAddress).Count > 1 Then
Exit Sub
End If
If Range(strAddress).Value = "" And Target.Count = 1 Then
Target.Value = "A"
Application.MoveAfterReturn = True
Application.MoveAfterReturnDirection = xlDown
strAddress = Target.Address
ingRow = Target.Row
ingColumn = Target.Column
ingI = 1
Exit Sub
End If
End If

If Target.Count > 1 Then
Exit Sub
End If

If ingI = 1 And ingRow = Target.Row - 1 And ingColumn = Target.Column And strAddress <> Target.Address Then
Target.Value = "p"
ingI = ingI + 1
Application.MoveAfterReturn = True
Application.MoveAfterReturnDirection = xlDown
ElseIf ingI = 2 And ingRow = Target.Row - 2 And ingColumn = Target.Column And strAddress <> Target.Address Then
Target.Value = "9"
Application.MoveAfterReturn = False
Else
If Application.MoveAfterReturn = True And Target.Count = 1 Then
Range(strAddress).Offset(ingI - 1, 0).Select
Exit Sub
End If
Target.Value = "A"
Application.MoveAfterReturn = True
Application.MoveAfterReturnDirection = xlDown
strAddress = Target.Address
ingRow = Target.Row
ingColumn = Target.Column
ingI = 1
End If
End Sub

'保存工作薄后关闭,再重新打开。
'现在可以在要使用的工作表(如"Sheet1")里运行了。试试看?
第2个回答  2011-09-11
Sub jd()
Range("a3").Select
Selection.Value = Application.InputBox("")
Selection.Offset(1, 0).Select
Selection.Value = Application.InputBox("")
Selection.Offset(1, 0).Select
Selection.Value = Application.InputBox("")
End Sub
回车在这里的作用一是确定输入的值;二是转向下一个输入位置。这第二个作用“Selection.Offset(1, 0).Select“达到了,按回车这个过程似乎在程序里没必要啊!若必须确认的话就只有写成上面那样了!回车有模拟按键:SENDKEYS "ENTER",好像用处不大。
第3个回答  2011-09-11
Sub Macro3()
'
' Macro3 Macro
'

'
ActiveCell.FormulaR1C1 = "A"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "P"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "9"
ActiveCell.Offset(1, 0).Range("A1").Select
End Sub本回答被提问者采纳
相似回答