首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在sub中无法识别ActiveX控件的公共变量

是因为在VBA中,公共变量的作用域是模块级别的,而ActiveX控件是在窗体或工作表中使用的。因此,在sub中无法直接访问窗体或工作表中的公共变量。

解决这个问题的一种方法是使用属性或方法来访问ActiveX控件中的变量。可以在窗体或工作表中创建一个公共属性或方法,通过该属性或方法来访问控件中的变量。例如,可以在窗体中创建一个公共属性,然后在sub中通过窗体对象来访问该属性,从而间接地访问控件中的变量。

另一种方法是使用回调函数。可以在窗体或工作表中定义一个回调函数,然后将该函数作为参数传递给sub,在sub中调用回调函数来获取控件中的变量值。

需要注意的是,使用ActiveX控件时,需要确保已正确引用该控件,并且控件已正确注册。可以在VBA编辑器的工具菜单中选择引用,然后选择所需的控件库。

对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体的云计算品牌商,无法给出具体的推荐。但腾讯云提供了丰富的云计算服务,包括云服务器、云数据库、云存储等,可以根据具体需求选择适合的产品。可以访问腾讯云官方网站获取更多信息:https://cloud.tencent.com/

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Excel实战技巧74: 在工作表中创建搜索框来查找数据

图1 在VBE中,插入一个标准模块,输入代码: Sub SearchData() Dim optButton As OptionButton Dim strButtonName As String...End Sub 在代码中,对要搜索的文本使用了通配符,因此可以搜索部分匹配的文本。此外,对数据区域使用了“硬编码”,你可以将其修改为实际的数据区域。代码运行的结果如下图2所示。 ?...End Sub 在编写好代码后,将宏指定给表示按钮的矩形形状。在形状中单击右键,如下图4所示。 ? 图4 选取“指定宏”命令,在“指定宏”对话框中选择宏名,如下图5所示。 ?...图5 可以在此基础上进一步添加功能,例如,在搜索完成后,我想恢复原先的数据,可以在工作表中再添加一个代表按钮的矩形形状,如下图6所示。 ?...你可以使用ActiveX控件,或者直接使用单元格,或者使用快捷键来执行宏。在我们编写的代码中,有很多注释掉的代码语句,可供参考。

16.7K10

Excel实战技巧98:使用VBA在工作表中添加ActiveX控件

要使用VBA从控件工具箱(ActiveX控件)中添加控件,可以使用OLEObjects集合的Add方法。...其中,参数ClassType代表的一些常见的ActiveX控件的名称如下: Forms.Checkbox.1(复选框) Forms.Combobox.1(组合框) Forms.Optionbutton.1...图1 下面的代码用来在工作表中添加复选框: Sub RefreshList() Dim oCheck As OLEObject Dim rCell As Range, rRange As...上述代码首先删除工作表中所有已存在的复选框,因为本示例已知道工作表中无其他控件,所以直接删除,如果无法判断是否有其他控件而只需删除复选框,可以加上一个条件判断语句: If TypeName(oCheck.Object...接下来,在确定数据范围后,在第一列添加复选框并设置了一些属性值以方便以后操作。这里,有一些通用的适合于其他控件的属性,也有一些专属于复选框的属性。

5.7K10
  • Excel VBA事件——ActiveX控件

    在Excel中,有两种控件,表单控件和ActiveX控件,这两种控件都可以插入在工作表中用来运行程序,至于区别,只需要简单的知道ActiveX控件更复杂一些,可设置的东西也更多,其中也包括了ActiveX...在工作表中插入1个ActiveX控件命令按钮: ?...这时候会进入设计模式,双击命令按钮: Private Sub CommandButton1_Click() End Sub 会自动跳转到当前工作表的代码编辑页面,同时自动输入了上面的代码,这时候,下拉框里也多了一个...这就是它的1个单击事件,比较简单,和普通的窗体控件的指定宏差不多。 演示一个MouseMove事件: ? 鼠标移动到它上面,它自动就跑远了。...) * 500) End Sub Rnd函数返回一个0到1之间的随机小数 Int取小数的整数部份 这样就达到了位置随机设置的目的。

    3.1K20

    Excel VBA编程

    OnTime方法 让文件自动保存 设置自定义的操作界面 控件,搭建操作界面必不可少的零件 在工作表中使用控件 在工作表中使用ActiveX控件 不需设置,使用现成的对话框 用InputBox函数创建一个可输入数据的对话框...,可以在模块开头,输入“Option Explicit” 变量的作用域 按作用域划分,VBA中的变量可以划分为本地变量,模块变量和公共变量。...滚动条 包括水平滚动条和垂直滚动条 ActiveX控件:excel中有11中可用的ActiveX控件,但是工作表总使用的ActiveX控件不止这些,可以单击其中的【其他控件】按钮,在弹出的对话框中选择其他控件...绘制表单控件 3. 设置相应区域 在工作表中使用ActiveX控件 添加ActiveX控件 2....当在工程中添加一个窗体后,就可以在窗体上自由的添加ActiveX控件,只要通过编写VBA代码为这些控件指定功能,就能利用这些控件与excel互动 在工程中添加一个用户窗体 设置属性,改变窗体的外观

    45.8K33

    问与答68: 如何改变复选框颜色?

    excelperfect Q:我如何才能改变复选框内部的颜色? A:在Excel中有3种不同类型的复选框,包括:用户窗体中的复选框、表单控件中的复选框、ActiveX控件中的复选框。...图2 表单控件中的复选框 表单控件中的复选框位于功能区“开发工具”选项卡中“插入”按钮下的“表单控件”中,如下图3所示。 ?...图3 在工作表中插入“复选框”后,单击右键,在快捷菜单中选择“设置控件格式”命令,在弹出的“设置控件格式”对话框的“颜色与线条”选项卡中,单击“颜色”下拉框,选择想要填充的颜色,如下图4所示。 ?...控件中的复选框 ActiveX控件中的复选框位于功能区“开发工具”选项卡中“插入”按钮下的“ActiveX控件”中,如下图5所示。...图5 在工作表中插入ActiveX控件的“复选框”后,保持在设计模式下,单击属性,或者右键单击复选框,在弹出的快捷菜单中选择“属性”命令。

    4K30

    【坑】如何心平气和地填坑之拿RSViewSE的报表说事

    在某一个软件内,你所能够调用的ActiveX控件的种类和数量取决于该软件所在计算机上安装的第三方软件的种类和数量,举个例子,你只有安装了Excel软件,你的组态软件内才能调用到Excel相关的控件。...同时这写变量信息在RSViewSE的标记库里面都创建为内存变量,实际使用时可直接替换变量即可 PS:对于日耗电量、供水量、运行时间等变量数据,可直接在PLC里面做好数据计算,现在多功能电表和流量计都支持累计数据读取...,输入标题栏内容 在VB里面,子程序分为两种, 一种是过程,一种是函数 Sub 和Function 区别, 如果需要返回子程序的值,就用函数(Function) 如果不需要返回子程序的值,就用过程(...Sub) Private 和Public 局部程序和全局程序的意思 先写个报表格式定义的子程序 报表格式效果 定义个子程序,用于向表格内写内容 获取RSViewSE软件内标记库变量的值,...将这个数字显示控件的属性面板设置为VBA控制 在刚才拉的NumericDisplay1控件对象的Change事件里面调用表格写数事件 效果:如下图,表格里面的时间数字会按照系统时间变量的秒每秒变化一次

    3.2K41

    OCX 入门

    如下图所示,我们可以从类视图清楚的看到我们添加的属性和方法名。 ? 3.事件 ACTIVEX通过事件通知容器控件上发生了某些事情。将控件开发人员的某一特定操作识别为事件。...)vs2005会自动为你添加基本的代码 ⑤为类添加成员变量 (一)为对话框类创建实例变量 1)在基本类CMyActiveXCtrl中为刚刚新建的对话框类创建实例变量:在类视图中右键单击CMyActiveXCtrl...(二)为对话框中的控件创建实例变量 1)以”确定”按钮为例,在该按钮处单击右键,选择”添加变量” 2)自定义变量名,我的叫m_OKButton。...注:调试过程中可能提示”无法找到”tstcon32.exe”的调试信息…要继续调试吗?”,选择是即可。...在工具菜单中,将出现“ActiveX控件测试容器”的菜单项,点击该项,将弹出ActiveX控件测试容器程序(即TstCon32.exe),如下图所示: ?

    3.2K60

    为ActiveX按钮添加工具提示

    标签:VBA 如何给工作表中的ActiveX按钮控件添加工具提示?这里给出了一个方法。...其方法是,在按钮控件附近添加一个ActiveX标签,并将其颜色设置为工具提示颜色(可以在属性窗口中执行此操作),接着在按钮控件和工具提示标签后面放置一个大的透明标签,然后将MouseMove事件添加到按钮和大标签中...图1 在该工作表代码模块中,添加以下代码: Private Sub Button_Test_MouseMove(ByVal Button As Integer, _ ByVal Shift As Integer...Private Sub Label_Background_MouseMove(ByVal Button As Integer, _ ByVal Shift As Integer, _ ByVal...图2 有兴趣的朋友可以试试。 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识

    14110

    .Net魔法堂:史上最全的ActiveX开发教程——ActiveX与JS间交互篇

    一、前言                             经过上几篇的学习,现在我们已经掌握了ActiveX的整个开发过程,但要发挥ActiveX的真正威力,必须依靠JS。下面一起来学习吧!...二、JS调用ActiveX方法                     只需在UserControl子类中(即自定义的ActiveX控件中),编写公共方法即可。  ...在用户控件中调用JS方法   在MyUserControl.cs中   C# #region 调用js函数 private Type typeIOleObject = null;...pDoc2.Script; try { //调用JavaScript方法OnScaned并传递参数,因为此方法可能并没有在页面中实现...若在IE9下无法加载ActiveX控件    检查是否为64位的IE9。32位的ActiveX控件不能在64位的IE上使用。

    2.3K100

    MFC ActiveX (ocx)控件的开发

    ActiveX控件是一种实现了一系列特定接口而使其在使用和外观上更象一个控件的COM组件。...在设计ActiveX控件时就应当考虑控件可能会发生哪些事件以及包容器程序将会对其中的哪些事件感兴趣并将这些事件包含进来。...ActiveX控件可以使COM组件从外观和使用上能与普通的窗口控件一样,而且还提供了类似于设置Windows标准控件属性的属性页,使其能够在包容器程序的设计阶段对ActiveX控件的属性进行可视化设置。...如下图右键添加属性,属性变量类型我们选LONG,变量名为TimeStyle,其他默认。 ? ? 2.方法 方法就是控件开放给用户使用的一些功能函数,类似于C++的类函数。...如下图所示,我们可以从类视图清楚的看到我们添加的属性和方法名。 ? 3.事件 ACTIVEX通过事件通知容器控件上发生了某些事情。将控件开发人员的某一特定操作识别为事件。

    6K80

    Activex、OLE、COM、OCX、DLL

    但Microsoft自己恐怕无法解释清楚,这要花费相当的精力和时间。 于是,随着Internet的发展,在1996年春,Microsoft改变了主意,选择ActiveX作为新的商标名称。...为在浏览器中执行从Web服务器下载的代码,浏览器可把它看作是COM对象,也就是说,COM技术也是一种打包可下载代码的标准方法(ActiveX控件就是执行这种功能的)。...3.注册ActiveX控件 使用Windows的人对于ActiveX控制一定不会陌生,它提供了一种类似于DLL动态链接库的调用,不过它与DLL的唯一区别就是ActiveX不注册不能被系统识别并使用。...利用它也能够非常方便地注册ActiveX控件,它的用法为: regsvr32 /u /s /c /i /n dllname 其中dllname为ActiveX控件文件名,建议在安装前拷贝到System...注册表法所谓注册ActiveX,无非是将一些信息记录在Windows的注册表中,如ShockwaveFlashObject控件,我们可以运行Regedit.exe注册表编辑程序,利用关键字进行搜索,然后把搜索得到后的注册表导出为

    2.6K10

    Delphi 教程

    它的重要方法有以下几个: Initialize:对全局程序进行初始化.就比如说你有2个窗体,form1和form2,里面分别有1个全局变量,一般在人们的理解上,这些全局变量在form创建时才拥有实例...第二个要讲的是unit:如果你的程序中有许多全局的函数,那么应当将它们放入一个新的unit中,并使用///进行注释.对于button.click等控件的事件可以不写注释,但是自定义的函数必须照///注释书写...在一个程序里,可以拥有多个线程,但是在线程冲突的情况下,必须使用synchronize方法来防止冲突,这个方法是定义在classes单元内的公共方法,你在任何情况下都能使用它。...比如说单元内定义了form1,并且没有手动的进行free,则可以在finalization中写FreeAndNil(form1); ActiveX.CoUninitialize; 但是对变量的赋值不允许放在...则可以在finalization中写FreeAndNil(form1); 在end.后面的代码,编译时被忽略。

    1.9K11

    Excel实战技巧67:在组合框中添加不重复值(使用ADO技巧)

    本文讲解一种技巧,使用Recordset(记录集)来获取唯一值并将其填充到组合框中。 示例数据如下图1所示。在工作表中有一个组合框,需要包含列A中的省份列表,但是列A中有很多重复的省份数据。 ?...单击功能区“开发工具”选项卡中“插入”按钮下ActiveX控件中的“组合框”,在工作表中插入一个组合框,可以看到Excel将其自动命名为“ComboBox1”,如下图2所示。 ?...MyWorkbook As String Set Myconnection = NewConnection Set Myrecordset = NewRecordset '识别引用的工作簿...可以在任何事件或过程中调用它们,例如工作簿打开事件、查询刷新事件或者按下按钮后。 运行或调用过程后,在工作表中单击组合框右侧下拉按钮,结果如下图3所示。 ?...图3 说明 1.示例中使用的是ActiveX组合框控件,如下图2所示。 2.需要在VBE中设置对Microsoft ActiveX Data Objects Library的引用,如下图4所示。

    5.7K10

    VBA表单控件(一)

    控件分为两种,分别是表单控件和ActiveX控件。表单控件只能在工作表中通过设置控件格式或者指定宏来使用,而ActiveX控件则有属性和事件,可以在工作表中和用户窗体中使用。...可以在开发工具选项卡的插入功能中,可以看到两种控件。 在Excel工作表中主要使用表单控件,它不仅与早期Excel版本更兼容,而且使用相对更简单,下面将分两节介绍常用的表单控件。...一、 按 钮 控 件 1、插入按钮并指定宏 按钮控件主要用于运行指定宏,首先需要有一个完整的sub过程。它的使用方法比较简单,下面简单演示下。...先准备了两个简单过程,点击插入--表单控件--按钮控件。 在工作表位置拖动画出一个按钮(窗体控件),松开鼠标后Excel会弹出指定宏的窗口,可以选择按钮绑定的sub过程,确定后即指定宏。...之后点击按钮即可运行对应的sub过程。设置起来是很简单。 2、按钮的属性修改 右键选择按钮,可以选择编辑文字来改变按钮显示的文字,也可以选择指定宏,即重新选择sub过程。

    5K30

    VC++编写ActiveX控件

    但dll有自己的局限性,就是没有事件,而这个时候ActiveX控件就隆重登场了,同样能够跨语言使用,ActiveX可以提供方法,属性甚至是事件(当然对比dll也有缺点,它不是单独的文件,无法动态加载和卸载...此属性在控件源文件中的变量名称,在编写控件源码时使用。 Notification function:提醒函数。当此属性被改变时,会触发此提醒函数。 Implementation:实现方式。...在弹出的文件浏览对话框中,找到Registered ActiveX Controls文件目录下的你刚才注册的控件,比如“OcxDemo Control”,然后点击“Insert”按钮即可将此控件添加到控件工具条集合中...比如,本文中的ActiveX控件的自定义事件中,是通过鼠标移动来触发,那么在应用程序中,只要鼠标移动到控件上,那么就会触发此自定义事件,并获取当前鼠标位置的橫坐标。 4....2) 用C#来使用ActiveX的事件时,事件所产生的数据都包含在Event变量中,只需要用个点运算符就可以取出来了。

    3.5K30

    窗体UserForm——命令按钮

    工具箱上的是一些常用控件,一般情况下都足够使用了,右键点击工具箱,会有个附加控件的东西,打开后可以看到,在工具箱上的是已经被勾选了的,这里可以有更多的选择。...这里的控件其实和前面说过的ActiveX控件是一种东西,使用方法也类似。...最常用的一个控件应该是命令按钮,拖拽一个到窗体,然后双击按钮就可以进入代码编辑,默认就会添加单击事件: Private Sub CommandButton1_Click() End Sub 我们实现一个简单的功能...在VBA编辑器插入一个窗体,添加3个命令按钮,选中按钮,在属性窗口修改Caption属性分别为Sheet1、Sheet2、Sheet3,编辑代码: Private Sub CommandButton1_...Sub 在普通模块编辑代码: Sub TestUserFrom() UserForm1.Show End Sub 运行后: ?

    1.7K10

    QT应用编程: Visual Studio里编写activex控件在网页中运行(dll插件形式)

    一、环境介绍 操作系统: win10 64位 QT版本: 5.12.6 Visual Studio IDE 版本: 2017 二、ActiveX控件介绍 ActiveX控件是Microsoft的ActiveX...ActiveX控件是可以在应用程序和网络中计算机上重复使用的程序对象。创建它的主要技术是Microsoft的ActiveX技术,其中主要是组件对象模型(COM)。...ActiveX控件可以以小程序下载装入网页,也可以用在一般的Windows和Macintosh应用程序环境中。...ActiveX控件可以由不同的可以识别Microsoft的COM技术的语言开发,它是一个组件或自包含的软件包,它可以在同一个或分布式的计算环境中开发或使用。...修改COM组件、寻找依赖库的过程中360之类的安全软件会拦截,为了方便不出问题,可以提前把这些软件关闭再操作。 接下来在DLL动态库的目录下,创建一个Xxx.html文件,写入调用代码,测试效果。

    1K50

    com组件与dll的区别_组件对象模型

    比如Dll我是使用Visual C++开发的,里面有异常处理的代码,现在我在Borland C++中使用这个Dll,那么它将无法捕捉到这些异常;再举个例子,如果这个Dll导出了一个类,而这个类在新的...Dll中增加了一些成员变量(也就是说这个类的对象占用的内存增加了),那么在最终用户机子上的原先使用旧的Dll而改用了新的Dll的应用程序如果没有重新编译链接的话会产生非法操作,因为C++的编译模型要求应用程序在编译的时候就需要知道对象占用的空间...,原先使用了旧的Dll的应用程序由于没有经过重新编译链接,它所认得的还是原先Dll中的类的对象的大小,最终用户机子换成了新的Dll后,那个旧的应用程序当访问这些新的成员变量的时候就会产生越界非法操作。...但Microsoft自己恐怕无法解释清楚,这要花费相当的精力和时间。 于是,随着Internet的发展,在1996年春,Microsoft改变了主意,选择ActiveX作为新的商标名称。...为在浏览器中执行 从Web服务器下载的代码,浏览器可把它看作是COM对象,也就是说,COM技术也是一种打包可下载代码的标准方法(ActiveX控件就是执行这种功能 的)。

    1.4K40
    领券