Excel精英培训网

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

[已解决](最简单问题)分表数据依次录入总表后删除分表数据怎么做

[复制链接]
发表于 2016-5-30 17:12 | 显示全部楼层 |阅读模式
想在”合同录入“添加”录入“按钮,依次把相关信息对应录入到”合同总成表“里边,录入完成后,”合同录入“里边文字小时,总成表可以一直往下填写,纯粹新人,只想解决这个问题,很着急
最佳答案
2016-5-31 13:29
本帖最后由 过江龙 于 2016-5-31 13:36 编辑

试试看
Sub 保存()
    Dim ar1, ar2
    With Sheets("合同计划总成表")

            Rnum = .Range("b65536").End(xlUp).Row '最后行数
            Rnum1 = Range("c65536").End(xlUp).Row
            If Rnum1 < 3 Then
              MsgBox "无保存的数据!", , "温馨提示"
              Exit Sub
            End If
            ar1 = Range("C3:C" & Rnum1)
            ar2 = Range("E3:H" & Rnum1)
            If IsArray(ar1) Then
              .Range("e" & Rnum + 1).Resize(UBound(ar1), 1) = ar1
             Else
             .Range("e" & Rnum + 1).Resize(1, 1) = ar1
            End If
            .Range("F" & Rnum + 1).Resize(UBound(ar2), 4) = ar2
            
            MsgBox "数据已经保存!", , "温馨提示"
      
    End With
    Range("a3:i41").ClearContents
End Sub
5-30.rar (24.43 KB, 下载次数: 13)
QQ截图20160530170143.png

5-30.rar

13.61 KB, 下载次数: 10

发表于 2016-5-31 11:38 | 显示全部楼层
看了一下,主要是要求不明确,最好再附一张要达到的效果图。
回复

使用道具 举报

 楼主| 发表于 2016-5-31 11:50 | 显示全部楼层
过江龙 发表于 2016-5-31 11:38
看了一下,主要是要求不明确,最好再附一张要达到的效果图。

达到的效果是总成表能依次往下填充合同录入的数据,保留所有数据。合同录入每次保存后就清空数据,方便下一次的数据录入Sub 保存()    Dim Rnum As Long

    With Sheets("合同计划总成表")

            Rnum = .Range("b65536").End(xlUp).Row '最后行数

           Dim i As Integer

            .Range("e" & Rnum + 1) = [c3]
            .Range("f" & Rnum + 1) = [e3]
            .Range("g" & Rnum + 1) = [f3]
            .Range("h" & Rnum + 1) = [g3]
            .Range("i" & Rnum + 1) = [h3]
            MsgBox "数据已经保存!", , "温馨提示"

    End With
    Range("a3:i41") = ""
End Sub
VBA请帮我看看怎么修改,现在这个只能是一直覆盖总成表的第一行数据,不会往下写了

点击保存后,数据清空

点击保存后,数据清空

总成表可以一直往下依次填充录入的数据

总成表可以一直往下依次填充录入的数据

5-30.rar

22.74 KB, 下载次数: 5

回复

使用道具 举报

发表于 2016-5-31 13:29 | 显示全部楼层    本楼为最佳答案   
本帖最后由 过江龙 于 2016-5-31 13:36 编辑

试试看
Sub 保存()
    Dim ar1, ar2
    With Sheets("合同计划总成表")

            Rnum = .Range("b65536").End(xlUp).Row '最后行数
            Rnum1 = Range("c65536").End(xlUp).Row
            If Rnum1 < 3 Then
              MsgBox "无保存的数据!", , "温馨提示"
              Exit Sub
            End If
            ar1 = Range("C3:C" & Rnum1)
            ar2 = Range("E3:H" & Rnum1)
            If IsArray(ar1) Then
              .Range("e" & Rnum + 1).Resize(UBound(ar1), 1) = ar1
             Else
             .Range("e" & Rnum + 1).Resize(1, 1) = ar1
            End If
            .Range("F" & Rnum + 1).Resize(UBound(ar2), 4) = ar2
            
            MsgBox "数据已经保存!", , "温馨提示"
      
    End With
    Range("a3:i41").ClearContents
End Sub
5-30.rar (24.43 KB, 下载次数: 13)

评分

参与人数 1 +1 收起 理由
love451jl + 1 很给力

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2016-5-31 15:19 | 显示全部楼层
过江龙 发表于 2016-5-31 13:29
试试看
Sub 保存()
    Dim ar1, ar2

试了一下,发现当下次录入新数据时,它会从总成表的第一行开始覆盖上一次的数据,我想是不要覆盖,接着序号一直往下填写
回复

使用道具 举报

发表于 2016-6-2 12:54 | 显示全部楼层
本帖最后由 过江龙 于 2016-6-2 13:38 编辑
love451jl 发表于 2016-5-31 15:19
试了一下,发现当下次录入新数据时,它会从总成表的第一行开始覆盖上一次的数据,我想是不要覆盖,接着序 ...

把“Rnum = .Range("b65536").End(xlUp).Row '最后行数”这句改为“Rnum = .Range("E65536").End(xlUp).Row '最后行数”
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-21 19:19 , Processed in 0.328235 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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