ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 6168|回复: 21

数据自动录入VBA求编

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-6-25 08:37 | 显示全部楼层 |阅读模式
我有一个自己的库存管理表,现大约有40个产品,以后还要增加,每天需要记录出库,一张一张换着录入太麻烦,而且易出错。现想求助各位高手帮我编个VBA程序,能实现自动录入,先谢谢了!!! 新建 Microsoft Excel 工作表.rar (34.71 KB, 下载次数: 5)   录入新数据时不能把原来的数据弄没了!接着原来的数据继续记录。或者帮我提供思路和用什么样的语句,我自己尝试着编写,谢谢了!!!

TA的精华主题

TA的得分主题

发表于 2013-6-25 09:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
搞了个简单的窗体录入,将就着用吧。

新建 Microsoft Excel 工作表.rar

37.48 KB, 下载次数: 301

TA的精华主题

TA的得分主题

发表于 2013-6-25 09:19 | 显示全部楼层
这样行不行?

要看哪一个产品的帐,在AAA表的K2单元输入产品名称,然后按“高级筛选”按钮。
“库存保管帐”表中F列的公式自己向下拉

新建 Microsoft Excel 工作表.zip

40.77 KB, 下载次数: 122

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-6-25 14:55 | 显示全部楼层
grf1973 发表于 2013-6-25 09:16
搞了个简单的窗体录入,将就着用吧。

谢谢您这么快给我解答,谢谢!!基本实现了我的想法。但我还有几个问题请教:1、我原设想是在“录入”表录入完后运行宏实现自动录入的目的,现在用窗体了,“录入”表是否可以删除不要??   2、为何“发出数量”或“收入数量”不能为空,必须都填上,(没有也得填0),否则录入后计算错误       3、换输入框后,输入法必须重新选择,如何能解决??(如::摘要“我填完锦州,再选”备注“时输入法又变回英文了。)      4、在同一窗体一次录入多个产品是否可行?是不是我把第一个的代码复制一下,修改变量就可以了??(我把窗体修改了一下,看了也许会明白)。再次感谢您的帮助!!对于新问题盼复!!

新建 Microsoft Excel 工作表(改窗体).rar

42.35 KB, 下载次数: 128

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-6-25 14:57 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
zez 发表于 2013-6-25 09:19
这样行不行?

要看哪一个产品的帐,在AAA表的K2单元输入产品名称,然后按“高级筛选”按钮。

感谢您的帮助,和我的想法不太一样,但我还是学到了新东西,谢谢!!!

TA的精华主题

TA的得分主题

发表于 2013-6-25 15:35 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
那这样还是在“录入”表中录完后一次导入吧。用窗体不适合你想一次输入N条记录的情况。具体代码我来弄一下。

TA的精华主题

TA的得分主题

发表于 2013-6-25 15:55 | 显示全部楼层
  1. Sub 录入()
  2.     r = [a65536].End(3).Row
  3.     arr = Range("a4:I" & r)
  4.     For i = 1 To UBound(arr)
  5.         sh = arr(i, 1)
  6.         With Sheets(sh)
  7.             r1 = .[a65536].End(3).Row + 1
  8.             .Cells(r1, 1).Resize(1, 4).Value = Array(arr(i, 2), arr(i, 3), arr(i, 4), arr(i, 5))
  9.             .Cells(r1, 6).Resize(1, 3).Value = Array(arr(i, 7), arr(i, 8), arr(i, 9))
  10.         End With
  11.     Next
  12.     MsgBox "已添加" & UBound(arr) & "条记录"
  13.    
  14. End Sub

  15. Sub 清空()
  16.   r = [a65536].End(3).Row
  17.   Range("a4:I" & r).ClearContents
  18. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2013-6-25 15:57 | 显示全部楼层
请看附件。前提是分表已经做好。不然会报错。而且里面数据填写是否正确没有检查。

新建 Microsoft Excel 工作表.rar

36.49 KB, 下载次数: 155

TA的精华主题

TA的得分主题

发表于 2013-6-25 16:18 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
wang94103 发表于 2013-6-25 14:55
谢谢您这么快给我解答,谢谢!!基本实现了我的想法。但我还有几个问题请教:1、我原设想是在“录入”表录 ...

还是原来的想法吧,直接填写录入表。然后点按钮,分别录入各表,在录入之后自动清除录入表的内容。
  1. Option Explicit


  2. Sub 录入()
  3.     Application.ScreenUpdating = False
  4.     Dim conn As Object, xrow As Long, i As Long, sqlstr$, sAdress$, sht As Worksheet
  5.     Set conn = CreateObject("adodb.connection")
  6.     conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & ThisWorkbook.FullName
  7.     sAdress = Range("a3", Cells(Rows.Count, "i").End(xlUp)).Address(0, 0)
  8.    
  9.     For Each sht In Worksheets
  10.         If sht.Name <> "录入" Then
  11.             sqlstr = "Select 日期,摘要,收入数量,发出数量,库存,备注,批号,小号 from [录入$" & sAdress & "] where 产品 = '" & sht.Name & "'"
  12.            
  13.             With sht
  14.                 xrow = .[a65535].End(xlUp).Row + 1
  15.                 .Range("a" & xrow).CopyFromRecordset conn.Execute(sqlstr)
  16.             End With
  17.         End If
  18.     Next
  19.     Sheets("录入").Activate
  20.     Range(Range("a4"), Cells(Rows.Count, "i")).ClearContents
  21.     Set conn = Nothing
  22.     Application.ScreenUpdating = True
  23. End Sub


复制代码

TA的精华主题

TA的得分主题

发表于 2013-6-25 16:19 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
hehex 发表于 2013-6-25 16:18
还是原来的想法吧,直接填写录入表。然后点按钮,分别录入各表,在录入之后自动清除录入表的内容。

请参考附件如下:

新建 Microsoft Excel 工作表.zip

71 KB, 下载次数: 215

评分

1

查看全部评分

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

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-23 10:00 , Processed in 0.047688 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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