作者jinnit09786 (乐在棋中)
看板Office
标题[算表] 在固定档案名称规则下抓取档案内资料?
时间Mon Apr 23 13:48:58 2018
软体:EXCEL
版本:2010
情境:
在固定的资料夹内每日自动产生一报表(D:\XXXX\parameter20180423131053)(即年/月/日
/时/分/秒的格式)
假设今天资料夹内有以下五个xls档案,名称如下:
parameter20180423090937.xlsx
parameter20180424090959.xlsx
parameter20180425091014.xlsx
parameter20180426091021.xlsx
parameter20180427091028.xlsx
个别问题:
1.我想要制作一个总表,在该总表的A1储存格显示「抓取上述5个档案的固定F4储存格之
加总值」。
2.做一个选项按钮,当下拉式清单切换月份为05时,点选月表按钮,可以自动抓取05月
份的01~31的固定储存格之加总值显示在A1储存格。(即主问题点是在如何仅从部分档名”
0501”~”0531”相符,就抓取该资料的某储存格之值?因最尾端时间可能不固定,故只能
从部分档名,或第几个字节来做处理)
3. 当同一日的报表有1个以上,只抓取最後纪录时间的xlsx档。(设23:59:59为最後纪录
时间)
不好意思问题有点冗长,恳请能提供一点相关功能的提示,让我能从买来的范例书(VBA
757个范例)中寻找相关对策。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.137.133.154
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1524462540.A.FE0.html
1F:→ soyoso: dir配合回圈来抓档名,可以*(万用字元) 04/23 14:05
感谢S大!!正是需要此函数来抓档案,马上研究应用。
※ 编辑: jinnit09786 (220.137.133.154), 04/23/2018 14:17:45
2F:→ soyoso: 问题3,设个变数,dir回圈於同一日判断时间部分(mid取出) 04/23 14:21
3F:→ soyoso: 和变数那个大,为真则写入变数内,来取得最後纪录时间的档 04/23 14:23
4F:→ soyoso: 名 04/23 14:23
想请教怎麽指定一串档名当中的时间部分呢?(指定第几至几的字元)
5F:→ soyoso: 有档名且知道工作表名称的话,可以worksheets.open来抓取 04/23 14:26
6F:→ soyoso: 不开档的话,可於总表任一储存格以='路径\[完整档名]工作 04/23 14:27
7F:→ soyoso: 名称'!储存格位置来取得该值 04/23 14:28
※ 编辑: jinnit09786 (220.137.133.154), 04/23/2018 14:42:55
8F:→ soyoso: 如原文名称长度固定,可以mid(档名,18,6)来取得 04/23 14:52
9F:→ soyoso: 或以replace取代".xlsx"为""後,right取6位 04/23 14:53
10F:→ soyoso: 知道工作表名称,不开档方面也可以ado,getstring来取得原 04/23 14:56
11F:→ soyoso: 文所写到储存格f4的值 04/23 14:56
太谢谢了!上述指令我研究使用看看,另外您提到的外部参照使用方法,在[完整档名]这部分,
如果我想要指向到已经用dir抓取到的档名所在的储存格的string,该如何做呢?万分感谢><
※ 编辑: jinnit09786 (220.137.133.154), 04/23/2018 15:07:00
12F:→ soyoso: 可以任一储存格内以='路径\[完整档名]工作名称'!储存格位 04/23 15:08
13F:→ soyoso: 置来取得该值,再以变数=储存格,传回变数 04/23 15:09
S大,测试了一个下午之後,我发现﹝完整档名〕好像没有办法将内容直接指向储存格,
想请问这有解吗?这个中括号微软好像也没有给出他的属性,不知道可以怎麽使用。谢谢!
14F:→ jinnit09786: 谢谢!!终於打通了,做二段处理就可以达到了,太感谢S 04/23 15:14
15F:→ jinnit09786: 大无私传授了。 04/23 15:15
※ 编辑: jinnit09786 (42.72.191.239), 04/23/2018 22:10:52
16F:→ soyoso: 是指不开启档案且不透过任一储存格来取得吗? 04/23 22:32
储存格内有档名:XXXX.xlsx,但是我的[完整档名]内的完整档名无法写入储存格的位址。
也就是,想要以储存格内的值来取代档名,但是试了好多指令都无法代入进去> <
※ 编辑: jinnit09786 (42.72.191.239), 04/23/2018 22:46:05
※ 编辑: jinnit09786 (42.72.191.239), 04/23/2018 22:49:37
17F:→ soyoso: 无法写入储存格的位址是指? 04/23 22:58
18F:→ soyoso: 因不太了解回文的意思,原po要不要举例或截个图看看 04/23 22:58
假设A1储存格的值是xxxx.xlsx,我的某一储存格想要写入='路径\[A1]工作表1'!储存格
当中的A1,我不晓得可以使用什麽指令来代入。
※ 编辑: jinnit09786 (42.72.191.239), 04/23/2018 23:02:39
19F:→ soyoso: "='路径\[" & range("a1") & "]工作表1'!储存格" 方式连接 04/23 23:04
不好意思慧根不够>< 我还是出现了#REF!
※ 编辑: jinnit09786 (42.72.191.239), 04/23/2018 23:16:59
21F:→ soyoso: 以上回文的是从vba内所执行的,工作表资料编辑列(公式列) 04/23 23:26
22F:→ soyoso: 并无法用range() 04/23 23:26
谢谢S大!VBA写入确实可行,谢谢您让初入vba的我又获得学习的动力了!感谢!.
※ 编辑: jinnit09786 (42.72.191.239), 04/23/2018 23:43:53
23F:→ jinnit09786: S大您好,经过您的帮助,第三题我以较土法炼钢的方式 04/24 21:07
24F:→ jinnit09786: 完成了,如下两张图,但仍想请教您,我有没有更好的 04/24 21:08
25F:→ jinnit09786: 应用变数的方式来做判别呢?现在我只会比较土的一个一 04/24 21:09
26F:→ jinnit09786: 个列出来,想要更有效率的撰写来达到目的。谢谢!! 04/24 21:10
※ 编辑: jinnit09786 (42.73.32.100), 04/24/2018 21:38:42
谢谢S大,我学到很多!
※ 编辑: jinnit09786 (36.225.117.91), 04/25/2018 12:22:57