作者ahow0917 (小白)
看板Office
标题[算表] 多资料栏位跨档案条件判断
时间Sat Sep 10 02:16:56 2016
软体: EXCEL
版本: 2010
档案1 test.xlsm
档案2 date.xls
以档案1的栏位以搜寻的的方法来找寻是否有出现在档案2
附上程式码
Sub FindAddress()
Dim s As Integer
Dim r As Integer
Dim GCell, txt As Range
Dim MySheet As String
'路径
MyPath = "d:\test\"
'档案名称
MyWB = "date.xls"
MySheet = ActiveSheet.Name
'关显示开唯读
Application.ScreenUpdating = False
Workbooks.Open Filename:=MyPath & MyWB, ReadOnly:=True
e = 5
For r = 17 To 36
i = r
Set txt = Cells(r, e)
Set GCell = ActiveSheet.Cells.Find(What:=txt)
If Not GCell Is Nothing Then
With ThisWorkbook.ActiveSheet.Range("f" & (i))
.Value = "ok"
End With
Else
With ThisWorkbook.ActiveSheet.Range("f" & (i))
.Value = "no"
End With
End If
Next r
'开显示不存档
ActiveWorkbook.Close savechanges:=False
Application.ScreenUpdating = True
End Sub
问题1:无法指定档案1的栏位来做搜寻,他都会跳到档案2栏位做为搜寻的条件
请问是我哪里写错了吗??
问题2:因为档案2会以月份做为工作表,所以之後会输入的工作表至少会有12页,
这样开档搜寻之後又关档效率会好吗?
请各位多多指教~~~谢谢!!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 125.230.134.117
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1473445019.A.34F.html
1F:→ soyoso: 问题1,原cells(r,e),前加上thisworkbook.activesheet 试 09/10 07:15
2F:→ soyoso: 试 09/10 07:15
3F:→ ahow0917: s大~加上去就可以了,可是如果有是空格他还是会判定是 09/10 16:33
4F:→ ahow0917: 成功,我有加上lookin:=xlvalues lookin:=xlwhole还是一 09/10 16:35
5F:→ ahow0917: 样,空格的问题有可以解吗??谢谢 09/10 16:36
6F:→ soyoso: 有空格是指,如"a "去找"a"的话是可以找到吗? 09/10 16:44
7F:→ ahow0917: 空格的意思是搜寻栏位是没资料的假如後面有10笔的栏位是 09/10 16:58
8F:→ ahow0917: 没有打入资料的他也会判定成功 09/10 16:59
9F:→ soyoso: 那加上个判断寻找目标如没资料则不执行range.find的部分 09/10 17:07
10F:→ ahow0917: 请问有相关范本可以参考吗?? 09/10 17:28
11F:→ ahow0917: 是要if等於 "" 然後就直接跳出吗这样吗?? 09/10 17:31
12F:→ soyoso: 如原po回文,为""时则不执行range.find,再执行其他部分 09/10 17:38
13F:→ ahow0917: 我先写看看~~先感谢神S的指导~~ 09/10 19:11
14F:推 waiter337: 你先做个测试 先别用vba 09/10 23:54
15F:→ waiter337: 先手动 确定 两笔资料是否相同 有可能都一样的文字 缺 09/10 23:55
16F:→ waiter337: 不同的资料 09/10 23:55
17F:→ waiter337: 却是不同的资料 09/10 23:55
18F:→ waiter337: 我会建议你把档案传上来 09/10 23:57
19F:推 waiter337: 问题一 一定可以指定 甚至可以套入回圈 甚至自己抓档名 09/10 23:58
20F:→ waiter337: 连指定档案都不用 09/10 23:58
21F:→ waiter337: 问题二 其实要看资料的概况 09/10 23:59
22F:推 waiter337: 甚至只要有一个表 多个月份栏位,基本上12张合成一张 09/11 00:02
23F:→ waiter337: 都无所谓,除非你一个月分的资料破2万笔 09/11 00:02
24F:推 waiter337: 但反过来说 甚至你可以用年当资料分类 09/11 00:04
25F:推 waiter337: 其实是我会比较用土一点但比较不会错的方式 09/11 00:06
26F:→ waiter337: 用vba把档案二的资料贴到档案ㄧ的某个页面,在做分析 09/11 00:07
27F:推 waiter337: 同时开启12个档案当然会很慢,我会建议,你把 09/11 00:12
28F:→ waiter337: ActiveWorkbook.Close savechanges:=False 09/11 00:12
29F:→ waiter337: Application.ScreenUpdating = True 09/11 00:13
30F:→ waiter337: End Sub 09/11 00:13
31F:→ waiter337: End sub 不用 09/11 00:13
32F:→ waiter337: 这几行 放入回圈中 每次处理完就关掉就好啦 09/11 00:13
33F:→ ahow0917: 问题在於我连第一个都解不出来了QQ 09/11 03:40
34F:→ ahow0917: 问题2不合并的原因在於他是在做出货的查询,只要有出货 09/11 03:44
35F:→ ahow0917: 他要查到是否有打入,所以我才会用find去做而已 09/11 03:46
36F:推 waiter337: 你把档案po上来直接让我们改比较快 毕竟问题 不是单一 09/11 04:07
37F:→ waiter337: 函数 09/11 04:07
http://goo.gl/20mCMX -----test.xlsm
http://goo.gl/pbjvU5 -----dete.xls
附上相关档案~~
※ 编辑: ahow0917 (114.41.83.250), 09/11/2016 16:32:23
38F:推 waiter337: 我要星期二才会看 09/11 16:34
39F:→ ahow0917: 应该星期2我也还没解出来~~QQ 09/11 16:47
41F:→ ahow0917: 对~~感谢神S的神支援,小弟在此叩谢!!! 09/11 23:41