ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何把一个工作簿中的值填到多个工作簿的工作表中

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-5-9 17:10 | 显示全部楼层
yah760911 发表于 2012-5-9 17:02
显示:执行阶段错误,不正确的档案名称与数目,这是怎么回事啊?

估计是字段名不统一,请上传有问题的附件分析一下

TA的精华主题

TA的得分主题

发表于 2012-5-9 17:09 | 显示全部楼层
改进一下,只连接第一个工作簿以加快速度:
  1. Sub Macro1()
  2.     Dim cnn As Object, cat As Object, tb1 As Object
  3.     Dim SQL$, s$, t$, arr, i&, n&, MyPath$, MyFile$
  4.     arr = [a1].CurrentRegion
  5.     Set cnn = CreateObject("adodb.connection")
  6.     Set cat = CreateObject("ADOX.Catalog")
  7.     MyPath = ThisWorkbook.Path & "\表"
  8.     MyFile = Dir(MyPath & "*.xls")
  9.     Do While MyFile <> ""
  10.         n = n + 1
  11.         If n = 1 Then cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=excel 8.0;Data Source=" & MyPath & MyFile
  12.         cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;HDR=No';Data Source=" & MyPath & MyFile
  13.         For Each tb1 In cat.Tables
  14.             If tb1.Type = "TABLE" Then
  15.                 s = Replace(tb1.Name, "'", "")
  16.                 If Right(s, 1) = "$" Then
  17.                     If n > 1 Then t = "[Excel 8.0;Database=" & MyPath & MyFile & "].[" & s & "]" Else t = "[" & s & "]"
  18.                     For i = 2 To UBound(arr)
  19.                         SQL = "update " & t & " set 子件規格='" & arr(i, 3) & "',基本用量=" & arr(i, 5) & ",子件顏色='" & arr(i, 6) & "'  where 子件編碼='" & arr(i, 1) & "'" '只取第一个条件
  20.                         cnn.Execute SQL
  21.                     Next
  22.                 End If
  23.             End If
  24.         Next
  25.         MyFile = Dir()
  26.     Loop
  27.     cnn.Close
  28.     Set cnn = Nothing
  29.     Set cat = Nothing
  30.     Set tb1 = Nothing
  31.     MsgBox "更新完毕"
  32. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2012-5-9 17:02 | 显示全部楼层
显示:执行阶段错误,不正确的档案名称与数目,这是怎么回事啊?

TA的精华主题

TA的得分主题

发表于 2012-5-9 16:47 | 显示全部楼层
请看附件
测试.rar (33.19 KB, 下载次数: 24)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-5-9 16:46 | 显示全部楼层
  1. Sub Macro1()
  2.     Dim cnn As Object, cat As Object, tb1 As Object
  3.     Dim SQL$, s$, arr, i&, MyPath$, MyFile$
  4.     arr = [a1].CurrentRegion
  5.     Set cat = CreateObject("ADOX.Catalog")
  6.     MyPath = ThisWorkbook.Path & "\表"
  7.     MyFile = Dir(MyPath & "*.xls")
  8.     Do While MyFile <> ""
  9.         Set cnn = CreateObject("adodb.connection")
  10.         cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=excel 8.0;Data Source=" & MyPath & MyFile
  11.         cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;HDR=No';Data Source=" & MyPath & MyFile
  12.         For Each tb1 In cat.Tables
  13.             If tb1.Type = "TABLE" Then
  14.                 s = Replace(tb1.Name, "'", "")
  15.                 If Right(s, 1) = "$" Then
  16.                     For i = 2 To UBound(arr)
  17.                         SQL = "update [" & s & "] set 子件規格='" & arr(i, 3) & "',基本用量=" & arr(i, 5) & ",子件顏色='" & arr(i, 6) & "'  where 子件編碼='" & arr(i, 1) & "'" '只取第一个条件
  18.                         cnn.Execute SQL
  19.                     Next
  20.                 End If
  21.             End If
  22.         Next
  23.         MyFile = Dir()
  24.     Loop
  25.     cnn.Close
  26.     Set cnn = Nothing
  27.     Set cat = Nothing
  28.     Set tb1 = Nothing
  29. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2012-5-8 14:30 | 显示全部楼层
更新工作表里的值

测试.rar

35.02 KB, 下载次数: 9

TA的精华主题

TA的得分主题

发表于 2012-5-8 16:41 | 显示全部楼层
yah760911 发表于 2012-5-8 14:30
更新工作表里的值

1、3个需要更新的工作簿我打不开
2、说说你更新的规则,模拟效果(更新前、更新后)

TA的精华主题

TA的得分主题

发表于 2012-5-8 17:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
VBA将这个工作表里的编码,名称,规格,单位,用量,颜色A2:F3更新
对应到"表"工作簿里的所有工作表中,如果不需要或没有的不动,保留以前的数据

TA的精华主题

TA的得分主题

发表于 2012-5-8 17:33 | 显示全部楼层
工序行號        級別        子件行號        子件編碼        子件名稱        子件規格        子件計量單位        基本用量        子件顏色
1                10        PDN-JHK-5423N        木板1        200*120*10mm        個        1        本色
2                20        PDN-JHK-5424N        木板2        220*120*10mm        個        1        本色
3                30        PDN-JHK-5425N        木板3        230*120*11mm        個        1        本色
4                40        PDN-JHK-5426N        木板4        240*120*11mm        個        1        本色
5                50        PDN-JHK-5427N        木板5        250*120*12mm        個        1        本色

TA的精华主题

TA的得分主题

发表于 2012-5-8 17:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
以上这是更新前的值
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-16 08:11 , Processed in 0.025264 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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