Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2624|回复: 5

[已解决]代码解译。

[复制链接]
发表于 2014-7-15 20:33 | 显示全部楼层 |阅读模式
Sub 按钮9_Click()
    Application.ScreenUpdating = False
    a = MsgBox("你确定要添加吗?", 4 + 64 + 256, "系统提示")
    r2 = Sheets(2).Cells(Rows.Count, 1).End(3).Row
    r3 = Sheets(3).Cells(Rows.Count, 1).End(3).Row
    If Len(Cells(3, 1)) > 0 Then
        r1 = Sheets(1).Cells(Rows.Count, 1).End(3).Row
        Range("a3:e" & r1).Copy Sheets(2).Cells(r2 + 1, 1)
        Range("a3:e" & r1).Copy Sheets(3).Cells(r3 + 1, 1)
        Range("a3:e" & r1).ClearContents
    'MsgBox "保存成功!"
    End If
    Application.ScreenUpdating = True
End Sub

以上代码请帮忙解译一下,刚接触vba,不懂。

最佳答案
2014-7-15 22:50
Sub 按钮9_Click()
Dim a, r2, r3, r1

    Application.ScreenUpdating = False  '关闭屏幕刷新
    a = MsgBox("你确定要添加吗?", 4 + 64 + 256, "系统提示")   '出现你确定要添加的提示框
    r2 = Sheets(2).Cells(Rows.Count, 1).End(3).Row     'r2的值=表2的第一列的最后一行行号
    r3 = Sheets(3).Cells(Rows.Count, 1).End(3).Row     'r3的值=表3的第一列的最后一行行号
    If Len(Cells(3, 1)) > 0 Then '如果单元格A3的长度大于1  那么
        r1 = Sheets(1).Cells(Rows.Count, 1).End(3).Row  'r1的值=表1的第一列的最后一行行号
        Range("a3:e" & r1).Copy Sheets(2).Cells(r2 + 1, 1)  'Range("a3:e" & r1)的内容复制到 表2 以 第一列的最后一个有数据的下一行为顶点
        Range("a3:e" & r1).Copy Sheets(3).Cells(r3 + 1, 1)  'Range("a3:e" & r1)的内容复制到 表3 以 第一列的最后一个有数据的下一行为顶点
        Range("a3:e" & r1).ClearContents   '清除内容
    'MsgBox "保存成功!"
    End If
    Application.ScreenUpdating = True  '打开屏幕刷新
End Sub
  解释的不是很好 有什么疑问 在说吧
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-7-15 20:49 | 显示全部楼层
最好的办法是:用鼠标选中一词,按 F1 键!
回复

使用道具 举报

发表于 2014-7-15 22:50 | 显示全部楼层    本楼为最佳答案   
Sub 按钮9_Click()
Dim a, r2, r3, r1

    Application.ScreenUpdating = False  '关闭屏幕刷新
    a = MsgBox("你确定要添加吗?", 4 + 64 + 256, "系统提示")   '出现你确定要添加的提示框
    r2 = Sheets(2).Cells(Rows.Count, 1).End(3).Row     'r2的值=表2的第一列的最后一行行号
    r3 = Sheets(3).Cells(Rows.Count, 1).End(3).Row     'r3的值=表3的第一列的最后一行行号
    If Len(Cells(3, 1)) > 0 Then '如果单元格A3的长度大于1  那么
        r1 = Sheets(1).Cells(Rows.Count, 1).End(3).Row  'r1的值=表1的第一列的最后一行行号
        Range("a3:e" & r1).Copy Sheets(2).Cells(r2 + 1, 1)  'Range("a3:e" & r1)的内容复制到 表2 以 第一列的最后一个有数据的下一行为顶点
        Range("a3:e" & r1).Copy Sheets(3).Cells(r3 + 1, 1)  'Range("a3:e" & r1)的内容复制到 表3 以 第一列的最后一个有数据的下一行为顶点
        Range("a3:e" & r1).ClearContents   '清除内容
    'MsgBox "保存成功!"
    End If
    Application.ScreenUpdating = True  '打开屏幕刷新
End Sub
  解释的不是很好 有什么疑问 在说吧
回复

使用道具 举报

发表于 2014-7-15 22:51 | 显示全部楼层
Sub 按钮9_Click()
Dim a, r2, r3, r1

    Application.ScreenUpdating = False  '关闭屏幕刷新
    a = MsgBox("你确定要添加吗?", 4 + 64 + 256, "系统提示")   '出现你确定要添加的提示框
    r2 = Sheets(2).Cells(Rows.Count, 1).End(3).Row     'r2的值=表2的第一列的最后一行行号
    r3 = Sheets(3).Cells(Rows.Count, 1).End(3).Row     'r3的值=表3的第一列的最后一行行号
    If Len(Cells(3, 1)) > 0 Then '如果单元格A3的长度大于1  那么
        r1 = Sheets(1).Cells(Rows.Count, 1).End(3).Row  'r1的值=表1的第一列的最后一行行号
        Range("a3:e" & r1).Copy Sheets(2).Cells(r2 + 1, 1)  'Range("a3:e" & r1)的内容复制到 表2 以 第一列的最后一个有数据的下一行为顶点
        Range("a3:e" & r1).Copy Sheets(3).Cells(r3 + 1, 1)  'Range("a3:e" & r1)的内容复制到 表3 以 第一列的最后一个有数据的下一行为顶点
        Range("a3:e" & r1).ClearContents   '清除内容
    'MsgBox "保存成功!"
    End If
    Application.ScreenUpdating = True  '打开屏幕刷新
End Sub
解释的不是很好    不懂 你按 f8  单步执行看效果
回复

使用道具 举报

发表于 2014-7-16 06:02 来自手机 | 显示全部楼层
解释的不错,顶。
回复

使用道具 举报

发表于 2014-7-16 06:05 来自手机 | 显示全部楼层
End(3)换成End(xlup),可能好理解点。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-2 13:46 , Processed in 0.341301 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表