ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

VBA 自动把数据填入到每一个EXCEL表指定单元格中

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-5-22 13:23 | 显示全部楼层 |阅读模式
求大侠们帮我解释下每一个代码的意思,小弟是初学者。
Sub test()
'Application.ScreenUpdating = False
Dim TARR(1 To 10000, 1 To 3)
Range("F2:G1048576").ClearContents
Range("J2:L1048576").ClearContents
TR = 1
For S = 2 To Sheets.Count
   For Each C In Sheets(S).UsedRange
      If C.Font.ColorIndex = 3 Then
        TR = TR + 1
        Range("F" & TR) = Sheets(S).Name
        Range("G" & TR) = C.Address
      End If
   Next C
Next S
Rng = Range("F2:G" & TR)
TR = 0
Set fso = CreateObject("scripting.filesystemobject")

For R = 2 To [d65536].End(xlUp).Row
  Set ff = fso.getfolder(Range("d" & R))
  FSFOLDER = Range("d" & R)
  For Each F In ff.Files
    Application.DisplayAlerts = False
      '八方大厦WLAN.xlsx
      fname = Trim(Replace(F.Name, "WLAN.xlsx", ""))
      Set t = Range("a:a").Find(fname)
      If Not t Is Nothing Then
         FSDATE = Range("b" & t.Row)
         Workbooks.Open F
         For RR = 1 To UBound(Rng)
           TR = TR + 1
            TARR(TR, 1) = FSFOLDER & "\" & F.Name & "\" & Rng(RR, 1) & "\" & Rng(RR, 2)
            TARR(TR, 2) = Sheets(Rng(RR, 1)).Range(Rng(RR, 2))
            TARR(TR, 3) = FSDATE
           Sheets(Rng(RR, 1)).Range(Rng(RR, 2)) = FSDATE
         Next RR
      Else
         MsgBox fname & " was not on list ????"
      End If
   Workbooks(F.Name).Close True
  Next
Next
[J2].Resize(TR, 3) = TARR

    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub


这段代码运行后实现的功能是:
有N个EXCEL表,里面都有一个工作表,且名字相同,比如都是“sheet1”
每个sheet1中的表格格式内容都一样。
比如sheet1中的单元格A2是需要填写日期的,那么汇总表中,在指定的单元格输入日期,而且也必须给出单元格位置,并且把字体标红色,然后运行后,会自动把放在指定文件夹中的每一个EXCEL表格中的A2单元格更新日期,是自动打开自动更新然后关闭。

有一个前提是,在这个文件夹中的文件数量必须和汇总表中一样,名字也要一一对上,否则会报错。
但是等所有的EXCEL表都更新一遍后,这个程序无法停下来,只能按 Esc才能手动停止。那个大侠帮我修改下代码。
还有一个,这个总文件夹是不是只能放桌面上? 新建文件夹 V1只能放桌面上-信号测试.rar (1.59 MB, 下载次数: 285)
头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2015-5-22 15:20 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-5-24 10:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
朱荣兴 发表于 2015-5-22 15:20
把总表某一个单元格的值赋值给文件夹内所有工作薄制定位置?如果是这样的话,几句代码即可完成了要,不必那 ...

怎么会打不开呢
头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2015-5-24 11:18 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
提示: 作者被禁止或删除 内容自动屏蔽

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-5-26 21:13 | 显示全部楼层
朱荣兴 发表于 2015-5-24 11:18
1、汇总表中,在指定的单元格输入日期  具体是指哪个单元格?
2、在指定文件夹中的每一个EXCEL表格中的A2单 ...

这样说吧,一个汇总表,A列是文件名称,B列是需要更新到每一个工作簿中的数据,C列是每一个工作簿中需要更新数据的单元格位置,然后需要更新的所有工作簿放在指定文件夹中,当然汇总表中要给出这些工作簿所在的文件位置,只要在文件夹中找到A列的文件名称就打开工作簿更新数据,没找到,就接着找下一个,直到A列所有文件名称都查找一遍更新一遍,最后提示哪些没找到,最好能在汇总表中把这些没找到的底色标注,然后停止程序,跳出对话框,提示完成更新几条,未更新几条。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-26 02:53 , Processed in 0.038432 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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