怎样通过输入名字qq查找功能缓冲不出来 找到工圈出来的这个工作表,刚刚试过普通qq查找功能缓冲不出来,只能找到该工作表的内容

查看: 4008|回复: 10
[已解决]不打开工作簿,怎样知道是否存在指定名字的工作表
不打开工作簿,想道是否存在指定名字的工作表,代码怎样写?如,我要从人工资料工作簿的“工人”工作表取数,但我不知“工人”的工作表是否存在,怎样判明断?
xpw6061发布于
本帖最后由 xpw6061 于
10:17 编辑
这个可以实现的
Dim cn As Object, cat As Object, tbl As Object
& &Set cn = CreateObject(&ADODB.Connection&)
& &Set cat = CreateObject(&ADOX.Catalog&)
& & Set tbl = CreateObject(&ADOX.Table&)
& & cn.Open &dsn=dbq=& & ThisWorkbook.Path & &/XXXXX.xls&
& & cat.ActiveConnection = cn
& & For Each tbl In cat.Tables
& &&&If Replace(tbl.Name, &$&, &&) = &工人& Then
& && && && &MsgBox (&有这个表 &)
& && && && &End If
& && && && &Next
& & cn.Close
& & Set cn = Nothing
& & Set cat = Nothing
& & Set tbl = Nothing
至于具体怎么操作,自己看着办吧
看工作表名字是否等于&工人&
不打开工簿情况下,代码怎样写?
Sub test()
& & Dim a$
& & On Error GoTo m
& & a = Dir(&D:\*.xlsx&)& & '指定文件所在目录
& & Do
& && &&&If a = &工人.xlsx& Then
& && && && &MsgBox &存在&
& && &&&End If
& && &&&a = Dir
& & Loop Until a = &&
& & Exit Sub
m:
& & MsgBox &不存在&
End Sub
复制代码
是工作表,不是工作簿哈!&
lwt_99999 发表于
不打开工簿情况下,代码怎样写?
不可能不打开工作簿判断,不用Workbooks.Open复制代码那就用GetObject复制代码思路1:
循环判断工作表名;
(1)利用错误提示,比如:On Error GoTo 7复制代码(2)或者也可以先使用On Error Resume Next复制代码再使用Err.Number复制代码进行判断;
(3)当然也可以使用SQL语句+错误提示来实现——这个或许算得上是不打开工作簿了吧!
GetObject也是打开了文件的,只是默认把窗口隐藏了而已,007可以试试&
多谢老师指点,我又看错题了&
不打开宝箱能拿到箱里的宝贝么?能知道箱里有啥好东东?
可以用adox以数据库的方式访问
在你的工作薄里,写close事件,
在事件里写代码,将工作薄里所有表的名字保存到一个txt文件,这样只需要打开txe文件就能知道工作薄里有什么表了
这问题好比,小偷不进你家怎样才能知道你家有什么东西?
那就是找别人打听,总得有人把你家有啥值钱的东西告诉他他才能不用进你家就能知道吧!!
&&&本楼为最佳答案&&&
本帖最后由 xpw6061 于
10:17 编辑
这个可以实现的
Dim cn As Object, cat As Object, tbl As Object
& &Set cn = CreateObject(&ADODB.Connection&)
& &Set cat = CreateObject(&ADOX.Catalog&)
& & Set tbl = CreateObject(&ADOX.Table&)
& & cn.Open &dsn=dbq=& & ThisWorkbook.Path & &/XXXXX.xls&
& & cat.ActiveConnection = cn
& & For Each tbl In cat.Tables
& &&&If Replace(tbl.Name, &$&, &&) = &工人& Then
& && && && &MsgBox (&有这个表 &)
& && && && &End If
& && && && &Next
& & cn.Close
& & Set cn = Nothing
& & Set cat = Nothing
& & Set tbl = Nothing
至于具体怎么操作,自己看着办吧
xpw6061 发表于
这个可以实现的
Dim cn As Object, cat As Object, tbl As Object
& &Set cn = CreateObject(&ADODB.Conn ...
谢谢!,虽然我看不太明白,但非常好用!
Powered by}

我要回帖

更多关于 excel查找提取出来 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信