Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2496|回复: 3

[已解决]加入判断

[复制链接]
发表于 2016-6-22 14:15 | 显示全部楼层 |阅读模式
本帖最后由 乐乐2006201506 于 2016-6-22 16:35 编辑

        下面代码是加载“Microsoft Visual Basic for Applications Extensibility5.3”,“Microsoft Scripting Runtime”两个引用的,能否加入一个判断,就是当这两个引用已经勾选了的话,就不执行,未勾选的话,就执行,谢谢!

Sub 获取添加删除VBA引用()
       For i = 1 To Application.VBE.ActiveVBProject.References.Count
   Next
      Application.VBE.ActiveVBProject.References.AddFromFile Environ$("CommonProgramFiles") & "\microsoft shared\VBA\VBA6\VBE6EXT.OLB"

    ThisWorkbook.VBProject.References.AddFromFile "C:\windows\system32\scrrun.dll"
End Sub

最佳答案
2016-6-22 16:21
乐乐2006201506 发表于 2016-6-22 16:04
谢谢您。出现以下问题。
  1. Sub 获取添加删除VBA引用()
  2.     Dim i%, x As Boolean, y As Boolean
  3.     For i = 1 To Application.VBE.ActiveVBProject.References.Count
  4.        If ThisWorkbook.VBProject.References.Item(i).FullPath = "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB" Then
  5.             x = True
  6.        End If
  7.        If ThisWorkbook.VBProject.References.Item(i).FullPath = "C:\Windows\system32\scrrun.dll" Then
  8.             y = True
  9.        End If
  10.     Next
  11.     If x = False Then
  12.         Application.VBE.ActiveVBProject.References.AddFromFile Environ$("CommonProgramFiles") & "\microsoft shared\VBA\VBA6\VBE6EXT.OLB"
  13.     End If
  14.     If y = False Then
  15.         ThisWorkbook.VBProject.References.AddFromFile "C:\Windows\system32\scrrun.dll"
  16.     End If
  17. End Sub
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-6-22 15:05 | 显示全部楼层
没有细看,反正在的你基础上加了点判断,其实你这个不加判断也没关系,无非会报错,可以加on error resume next进行规避,如下:
  1. Sub 获取添加删除VBA引用()
  2.     Dim i%, x As Boolean, y As Boolean
  3.     For i = 1 To Application.VBE.ActiveVBProject.References.Count
  4.        If ThisWorkbook.VBProject.References.Item(i).FullPath = "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB" Then
  5.             x = True
  6.        End If
  7.        If ThisWorkbook.VBProject.References.Item(i).FullPath = "C:\windows\system32\scrrun.dll" Then
  8.             y = True
  9.        End If
  10.     Next
  11.     If x = False Then
  12.         Application.VBE.ActiveVBProject.References.AddFromFile Environ$("CommonProgramFiles") & "\microsoft shared\VBA\VBA6\VBE6EXT.OLB"
  13.     End If
  14.     If y = False Then
  15.         ThisWorkbook.VBProject.References.AddFromFile "C:\windows\system32\scrrun.dll"
  16.     End If
  17. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2016-6-22 16:04 | 显示全部楼层
老司机带带我 发表于 2016-6-22 15:05
没有细看,反正在的你基础上加了点判断,其实你这个不加判断也没关系,无非会报错,可以加on error resume  ...

谢谢您。出现以下问题。
引用.png 引用1.png
回复

使用道具 举报

发表于 2016-6-22 16:21 | 显示全部楼层    本楼为最佳答案   
乐乐2006201506 发表于 2016-6-22 16:04
谢谢您。出现以下问题。
  1. Sub 获取添加删除VBA引用()
  2.     Dim i%, x As Boolean, y As Boolean
  3.     For i = 1 To Application.VBE.ActiveVBProject.References.Count
  4.        If ThisWorkbook.VBProject.References.Item(i).FullPath = "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB" Then
  5.             x = True
  6.        End If
  7.        If ThisWorkbook.VBProject.References.Item(i).FullPath = "C:\Windows\system32\scrrun.dll" Then
  8.             y = True
  9.        End If
  10.     Next
  11.     If x = False Then
  12.         Application.VBE.ActiveVBProject.References.AddFromFile Environ$("CommonProgramFiles") & "\microsoft shared\VBA\VBA6\VBE6EXT.OLB"
  13.     End If
  14.     If y = False Then
  15.         ThisWorkbook.VBProject.References.AddFromFile "C:\Windows\system32\scrrun.dll"
  16.     End If
  17. End Sub
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-25 14:41 , Processed in 0.255457 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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