永发信息网

vba 使用workbooks.open后因开启文件在最前端导致,vba程序为新打开的文件进行计算,后出错

答案:2  悬赏:20  手机版
解决时间 2021-03-06 09:51
  • 提问者网友:疯子也有疯子的情调
  • 2021-03-05 10:48
Sub 出库计算()
Application.ScreenUpdating = False
Dim x As Integer, r As Integer, r1 As Double, r2 As Double, r3 As Double, r4 As Integer
Dim c As Integer, c1 As Integer, b As Integer, f As String, d As String, n As String
For x = 2 To 10000
d = ThisWorkbook.Path & "\生产记录\"
f = Dir(d & "*.*")
Workbooks.Open (d & f)
c = WorksheetFunction.CountIf(Sheets("入库情况").[a:a], Workbooks(f).Sheets("sheet1").Cells(x, 1))
c1 = WorksheetFunction.CountIf(Sheets("入库情况").[b:b], Workbooks(f).Sheets("sheet1").Cells(x, 2))

如上述所示如果没有 “Workbooks.Open (d & f)” 下面的程序无法继续执行,
但如果执行 Workbooks.Open (d & f)后,新打开的文件会出现在最前面,而导致
c = WorksheetFunction.CountIf(Sheets("入库情况").[a:a], Workbooks(f).Sheets("sheet1").Cells(x, 1))
对新打开的文件进行执行。
最佳答案
  • 五星知识达人网友:鱼芗
  • 2021-03-05 11:56
可以考虑用相对路径引用,
最好把要打开的这个工作薄B和这个工作薄A放在同一个目录下
然后用下面的语句打开
workbooks.open(thisworkbook.path & "\example.xlsm")
全部回答
  • 1楼网友:雾月
  • 2021-03-05 13:09
可能与机器的系统有关 看你的路径是win7的,如果在xp下桌面目录就不同的,可能会出现找不到目录 还有就是用户不同,桌面是不同的,因为桌面是可以自定义的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯