简单宏写法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

问题一:回车后自动返回指定单元格

代码1:

Private Sub Worksheet_Change(ByVal Target As Range)

Cells(Target.Row + 1, 1).Select

End Sub

代码2:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

If Target.Column > 2 Then Target.Offset(1).Offset(, -2).Select

End Sub

以上两个调试可以使用。

方法3:

下面截图是在excel里面制作的VIP学员填写表。

问题:如何在黄色区域的单元格自动跳转。比如在“姓名”后面的黄色单元格填写信息之后,按下回车键自动跳转到“QQ”后面的单元格,填写完毕,按下回车键又自动跳转到“班级”后面的黄色单元格……以此类推,知道如何实现吗?

就是按回车后,光标能在黄色的单元格之间进行跳转。

实现excel单元格自动跳转的操作步骤如下:

第一步,按住CTRL键的同时,分别单击选取所有黄色单元格,右键菜单中"设置单元格格式" - 保护- 取消"锁定"前的勾。

第二步,保护工作表。小编使用的excel是2007版本,依次单击“审阅——保护工作表”,保护时去掉“选定锁定单元格”前的勾选。不用输入密码,单击确定。

简单的两步设置,按下回车后,就可以自动在黄色单元格之间跳转了,而不用跳转到其他单元格。

温馨提示:“文件- Excel选项- 高级- 按enter键的移动的方向,可以调整按回车键后光标的移动方向。

很酷的excel技巧!牢记哦,上面的教程适用于excel单元格跳转输入,也很常用的技巧。

代码3:(没有调试)

Private Sub Worksheet_Change(ByVal Target As Range)

Dim i As Integer

Dim j As Integer

i = Target.Row

j = Target.Column

If j = 4 Then Cells(i + 1, j - 3).Activate

End Sub

问题二:当在任意单元格输入数据回车后,如果这时[D3]=2,光标自动返回原来的单元格

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rng As Range

Set rng = Target

If rng.Address = [d3].Address Then Exit Sub

If [d3] = "2" Then

MsgBox "D3单元格值为2,返回"

rng.Select

End If

End Sub

问题四:查找连续3行数据相同的做标记

Sub test()

Dim SArr, TArr()

SArr = Range("c1:c" & [c1].End(xlDown).Row)

ReDim TArr(1 To UBound(SArr), 1 To 1)

For I = 1 To UBound(SArr) - 2

If SArr(I, 1) = SArr(I + 1, 1) And SArr(I, 1) = SArr(I + 2, 1) Then

TArr(I, 1) = "999": TArr(I + 1, 1) = "999": TArr(I + 2, 1) = "999"

End If

Next

[e1].Resize(UBound(TArr), 1) = TArr

End Sub

=OFFSET($A$1,SMALL(IF($B$1:$B$26>=5>($B$1:$B$26>7),ROW($1:$26),27),COLUMN(A 1))-1,ROW()-1)&""

Sub 计算数字()

ar = [a1].CurrentRegion

Dim b(9)

For i = 1 To UBound(ar)

ReDim a(9)

For j = 1 To 3

a(ar(i, j)) = 1

Next

For j = 0 To 9

b(j) = b(j) + a(j)

Next

Next

[f1].Resize(, 10) = b '输出各行数字出现总次数的统计结果数组b

For i = 0 To 9

m = WorksheetFunction.Max(b)

If i > 3 Then If m < t Then Exit For

n = WorksheetFunction.Match(m, b, 0) - 1

If i < 4 Then

s = s & vbCrLf & n & "(" & m & ")"

Else

s = s & " | " & n & "(" & m & ")"

End If

b(n) = 0

t = m

Next

[e1] = s '输出至少4个出现次数最多的数字组合。包含和第4个数出现次数相同的所有

数字

MsgBox s

End Sub

Selection.Copy

Sheets("Sheet2").Select

ActiveSheet.Paste

Range("A1:C1").Select

Range(Selection, Selection.End(xlDown)).Select

Application.CutCopyMode = False

Selection.Copy

Range("C27:C29").Select

Sheets("Sheet3").Select

Rows("2:2").Select

Selection.Insert Shift:=xlDown 此行显示黄色

Range("E4").Select

ActiveSheet.Protect

End Sub

Sub caxun()

If Range("c3") = "" Then Exit Sub

Rows("5:5").Insert Shift:=xlDown '''''''''Selection.Insert Shift:=xlDownon.Insert Shift:=xlDown Range("c3").Copy Range("B5") ''''''.Select

Range("c3") = ""

Range("a5") = Range("a3").Value & Range("b3").Value '''.Copy ''''''.Select

Range("a3:b3") = ""

Range("C1:ah1").Copy Range("C5") '''''''''.Select

Range("b5:ah5").Select

Selection.Copy

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

ActiveSheet.Paste

Application.CutCopyMode = False

Rows("5:5").Interior.ColorIndex = xlNone

Rows("5:5").Font.ColorIndex = 0 ''''''Select

Range("A1").Select

Selection.Copy

相关文档
最新文档