Excel精英培训网

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

[已解决]求高手帮忙做个剪切命令

[复制链接]
发表于 2012-3-24 18:48 | 显示全部楼层 |阅读模式
5学分
我想通过“入账类型”把此表的数据复制到对应的表里,并在此表删除此行的数据,比如第4行数据N4单元格的内容为“财务费”,按下“入账类型命令”就保存到“财务费”工作表里,并在“银行登记表”里删除此行的内容,同样第6行的数据保存到“营业费”表里,如果“入账类型”为空白,就一直停留在“银行登记表”里,在进行剪切命令时希望有提示,是否保存,如选择是就剪切数据到对应的表里,否则就中断命令,不复制也不删除数据 剪切命令.rar (7.39 KB, 下载次数: 11)

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-3-24 19:34 | 显示全部楼层
本帖最后由 zjdh 于 2012-3-24 20:45 编辑

Sub TEST()
    On Error Resume Next
    ARR = Range("A4:N" & Range("N65536").End(3).Row)
    For I = UBound(ARR) To 1 Step -1
      If ARR(I, 14) <> "" Then
         If MsgBox("是否将单据: 《 " & ARR(I, 2) & " 》的数据转入【 " & ARR(I, 14) & " 】工作表?", 4 + 32 + 256) = 6 Then
                Rows(I + 3).Cut Sheets(ARR(I, 14)).Range("A65536").End(3)(2)
                Rows(I + 3).Delete
    End If:  End If:   Next
    MsgBox "数据转录结束!"
End Sub

剪切命令.rar (13.79 KB, 下载次数: 13)
回复

使用道具 举报

发表于 2012-3-24 20:03 | 显示全部楼层
本帖最后由 雄鹰 于 2012-3-24 21:16 编辑

Sub 入账类型命令()
For i = 4 To Sheets("银行登记表").[n65536].End(xlUp).Row
If Sheets("银行登记表").Cells(i, "n") <> "" Then
    Sheets("银行登记表").Select
    Sheets("银行登记表").Range("a" & i & ":N" & i).Select
    Selection.Cut
    A = Sheets("银行登记表").Range("N" & i)
    Sheets(A).Select
    Rows([A65536].End(xlUp).Row + 1).Select
    ActiveSheet.Paste
End If
Next
For i = Sheets("银行登记表").[A65536].End(xlUp).Row To 4 step-1
    k = 0
    For j = 1 To 14
        If Sheets("银行登记表").Cells(i, j) = "" Then
            k = k + 1
        End If
    Next
    If k = 14 Then
        Sheets("银行登记表").Select
        Sheets("银行登记表").Rows(i).Select
        Selection.Delete Shift:=xlUp
    End If
Next
End Sub
剪切命令.rar (15.58 KB, 下载次数: 9)
回复

使用道具 举报

 楼主| 发表于 2012-3-25 00:19 | 显示全部楼层
zjdh 发表于 2012-3-24 19:34
Sub TEST()
    On Error Resume Next
    ARR = Range("A4:N" & Range("N65536").End(3).Row)

朋友,还麻烦你一下,如果我把“M3单元格改为入账人”“N3单元格改为入账时间”,只有这两个单元格里都输入了数据后,按下入账命令,剪切到“对账表”里,只要一个单元格为空都不能剪切,麻烦朋友帮我改改这个代码怎么写,谢谢啦
回复

使用道具 举报

 楼主| 发表于 2012-3-25 00:20 | 显示全部楼层
雄鹰 发表于 2012-3-24 20:03
Sub 入账类型命令()
For i = 4 To Sheets("银行登记表").[n65536].End(xlUp).Row
If Sheets("银行登记表" ...

朋友,还麻烦你一下,如果我把“M3单元格改为入账人”“N3单元格改为入账时间”,只有这两个单元格里都输入了数据后,按下入账命令,剪切到“对账表”里,只要一个单元格为空都不能剪切,麻烦朋友帮我改改这个代码怎么写,谢谢啦
回复

使用道具 举报

发表于 2012-3-25 02:46 | 显示全部楼层
yty773436272 发表于 2012-3-25 00:20
朋友,还麻烦你一下,如果我把“M3单元格改为入账人”“N3单元格改为入账时间”,只有这两个单元格里都输 ...

如果我把“M3单元格改为入账人”“N3单元格改为入账时间”

添加判断,如果这两个单元格有一个为空,就提示错误,并且退出过程

if [m3]="" or [n3]="" then msgobx"error":exit sub
回复

使用道具 举报

发表于 2012-3-25 06:29 | 显示全部楼层
yty773436272 发表于 2012-3-25 00:20
朋友,还麻烦你一下,如果我把“M3单元格改为入账人”“N3单元格改为入账时间”,只有这两个单元格里都输 ...

Sub 入账类型命令()
For i = Sheets("银行登记表").[n65536].End(xlUp).Row To 4 Step -1
If Sheets("银行登记表").Cells(i, "o") <> "" Then
  l = 0
  For j = 1 To 15
    If Cells(i, j) <> "" Then l = l + 1
  Next
    If l = 15 Then
        Sheets("银行登记表").Select
        Sheets("银行登记表").Range("a" & i & ":N" & i).Select
        Selection.Cut
        A = Sheets("银行登记表").Range("N" & i)
        Sheets(A).Select
        Rows([A65536].End(xlUp).Row + 1).Select
        ActiveSheet.Paste
    End If
End If
Next
For i = Sheets("银行登记表").[A65536].End(xlUp).Row To 4 Step -1
    k = 0
    For j = 1 To 14
        If Sheets("银行登记表").Cells(i, j) = "" Then
            k = k + 1
        End If
    Next
    If k = 14 Then
        Sheets("银行登记表").Select
        Sheets("银行登记表").Rows(i).Select
        Selection.Delete Shift:=xlUp
    End If
Next
End Sub
剪切命令 .JPG 剪切命令 .zip (17.16 KB, 下载次数: 8)
回复

使用道具 举报

发表于 2012-3-25 08:21 | 显示全部楼层
本帖最后由 zjdh 于 2012-3-26 16:00 编辑
yty773436272 发表于 2012-3-25 00:19
朋友,还麻烦你一下,如果我把“M3单元格改为入账人”“N3单元格改为入账时间”,只有这两个单元格里都输 ...


Sub TEST()
    On Error Resume Next
    ARR = Range("A4:O" & Range("O65536").End(3).Row)
    For I = UBound(ARR) To 1 Step -1
        If ARR(I, 15) <> "" And ARR(I, 14) <> "" And ARR(I, 13) <> "" Then
            If MsgBox("是否将单据: 《 " & ARR(I, 2) & " 》的数据转入【 " & ARR(I, 15) & " 】工作表?", 4 + 32 + 256) = 6 Then
                Rows(I + 3).Cut Sheets(ARR(I, 15)).Range("A65536").End(3)(2)
                Rows(I + 3).Delete
    End If: End If: Next
    MsgBox "数据转录结束!"
End Sub

回复

使用道具 举报

 楼主| 发表于 2012-3-25 10:24 | 显示全部楼层
雄鹰 发表于 2012-3-25 06:29
Sub 入账类型命令()
For i = Sheets("银行登记表").[n65536].End(xlUp).Row To 4 Step -1
If Sheets("银 ...

朋友,不好意思,是我没有表达清楚,我是说把m3改为入账人,n3改为入账时间,入账类型不要了,当一行数据后m和n单元格都填了数据后,就剪切到“对账表
回复

使用道具 举报

 楼主| 发表于 2012-3-25 10:24 | 显示全部楼层
zjdh 发表于 2012-3-25 08:21
Sub TEST()
    On Error Resume Next
    ARR = Range("A4:O" & Range("O65536").End(3).Row)

朋友,不好意思,是我没有表达清楚,我是说把m3改为入账人,n3改为入账时间,入账类型不要了,当一行数据后m和n单元格都填了数据后,就剪切到“对账表
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 10:05 , Processed in 0.552511 second(s), 16 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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