Tag: activex

爬行ActiveXbutton

美好的一天! 我有一个ActiveXbutton(根据从顶部的行数锚定在位置)运行VBA代码插入指定的数字复制行在特定的点。 代码本身工作正常,但button“克隆”本身,并重叠自己在新行的位置,即使我已经设置Application.ScreenUpdating = False 。 一旦屏幕更新再次启用,屏幕刷新和克隆消失。 我已经跟踪到一行代码: Selection.Insert Shift:=xlDown 一旦该行运行,该button被克隆。 例如,如果我用这个macros添加了3个空行,那么一旦上面的命令执行完毕,button就会看起来像这样,直到子例程完成: 为了使这个更有趣,当我使用Excel 2010时,这种行为不会发生。我有一天升级到Excel 2013,现在发生了这个问题。 有什么想法吗?

MATLAB 2015b破解ActiveX / Excel控件

涉及使用MATLAB 2015b创buildActiveX句柄的问题。 在更新之前(从2013a开始),我使用下面的“try catch”来创build一个新的Excel应用程序句柄: global Excel try Excel = actxGetRunningServer('Excel.Application') ; catch Excel = actxserver('Excel.Application'); end 自从更新到2015b之后,代码仍然无误地运行,但是现在创build的Excel句柄仍然是Excel_Applicationtypes,没有任何属性。 调用Excel.get返回一个没有字段的结构。 除了更新之外,还没有对代码进行任何其他更改,MS Office的版本也没有更改。 MATLAB处理ActiveX接口的方式有没有改变,或者我的代码有什么问题?

VBA Excel – 如何在工作表内的框架内访问控制? 重构/优化

使用Excel 2010 我有一个包含三个ActiveX框架的工作表。 每个框架包含两个或更多的选项button。 工作表上的重置button将选项button的值重置为“False”。 现在,我可以使用每个帧的单独For循环来重置它们: Private Sub CommandButtonReset_Click() 'This button resets all the OptionButtons to False (unchecked) Dim x As Control For Each x In Frame1.Controls x.Value = False Next For Each x In Frame2.Controls x.Value = False Next For Each x In Frame3.Controls x.Value = False Next End Sub …但我想重置他们全部使用一个嵌套的For循环,像这样: Dim xControl as […]

使用VBA访问activeX控件时,运行时错误“438”问题

我一直在寻找互联网,似乎无法find我的问题的答案! 我在Excel 2010中创build了一个使用ActiveX控件(特别是文本框和combobox)的电子表格。 我遇到了一个问题,当我保存电子表格,closuresExcel并重新打开文件时,所有的ActiveX控件都不想合作。 我不断收到运行时错误“438”无法获得OLEObject类的对象属性。 我试图通过多种方式访问​​OLEObject:(参见下文) Sub ResetSheet() Sheets("CoverSheet").OLEObjects("TextBox1").Object.Value = "Date" Sheets("CoverSheet").OLEObjects(1).Object.Value = "Date" End Sub 这两行都会抛出上面的运行时错误….但是像这样的东西没有问题: Sheets("CoverSheet").OLEObjects(1).Delete 我错过了什么? 每个微软的 PS: Sheets("CoverSheet").OLEObjects("TextBox1").Object.Value = "Date" 应该工作..

image_mousedown事件给奇怪的坐标

我正在以图表轴为单位检索图表上鼠标点击的位置。 应用于图表对象的mousedown事件返回相对于px中图表对象的原点的坐标(我相信),但是我需要知道点击在绘图区域内的位置。 为了解决这个问题,我在图表的绘图区域上覆盖了透明的ActiveX图像。 这样mousedown事件是相对于图像。 通过将原点放置在图表坐标原点上,我可以简单地通过知道图像.height&.width属性来将返回的X / Y转换为图表单元。 这适用于其中一个图像,我可以确认它返回在轴原点(0,0)的X / Y。 第二个图像也在原点返回(0,0),但从mousedown返回的X / Y值比第一个图像放大了32倍,因为我离开了轴原点。 这两个图像都具有相同的高度和宽度,所以第二个图像开始返回大于距图像原点不远的X / Y值。 我明白,我可以通过将mousedown的X / Y除以32的因子来纠正这个问题,但是我们更愿意理解为什么它们会更快地扩大。 请查看我的代码的每个图像mousedown事件的副本以及图像属性的图片 – 以确认其属性是相同的附加。 任何帮助表示赞赏。 谢谢。 Private Sub Image1_MouseDown(ByVal Button As Integer, ByVal Shift As _ Integer, ByVal X As Single, ByVal Y As Single) Dim imH As Single Image1.Visible = False imH = Image1.Height MsgBox Y/imH […]

Excel VBA Sheet.Copy不保留ActiveX对象

这可能不是编码本身的问题,也许是关于“你观察到这个问题了吗? 在Excel中,我有模板名称为“模板”。 此工作表包含一排ActiveX对象(图像,用作button)。 我也有第二张纸,我们称之为“设置”,当点击“生成”button时,创build“Tepmlate”表的副本。 Sheets("Template").Copy After:=Sheets(Sheets.Count) 在欧洲的电脑上,它的工作原理也是如此,在印度也是如此,但是在美国的大多数工作站上复印的纸张不包含ActiveX对象。 你有什么想法,有什么会导致这种情况? 我坐在欧盟,在美国的电脑上检查什么? 他们有相同的OS / MS Office组合。 我尝试了几乎所有Excel中的信任中心设置,其中最大限度地在不可点击的button结果,但我无法模拟的情况下,当工作表复制没有ActiveX对象。

Excel文件中的ActiveX控件在某些机器上给出“无法加载对象…”错误

我们在公司的几台机器上使用一组Excel文件。 这些文件包含一个VBA应用程序,它利用来自mscomct2.ocx库(即MonthView和DateTimePicker )的一对ActiveX控件对象。 ActiveX对象将在UserForm中显示。 不幸的是,这些文件的可移植性似乎受限于一个非常奇怪的方式。 似乎有两组机器: A组:我可以在这样的机器上创build一个包含MonthView的Excel文件,并在任何A组PC上使用它。 但是,当我尝试在组B的任何一台机器上打开这个文件,我得到一个无法加载一个对象,因为它不是在这个机器上的错误。 但是,在B组机器上创build的具有相同ActiveX的文件在A机器上正常工作。 B组:带有在这些机器上创build的ActiveX的文件在任何地方都可以工作(即在任何A和B机器上)。 但是,正如我前面所说的,当机器上保存的ActiveX文件打开时,B机器给出上述错误。 在一个句子中: 在一台机器上创build的文件只能在其他A上工作,无处不在B上创build的文件 ! 这里最奇怪的是每台机器都有mscomct2.ocx注册(再一次:我可以在任何机器上使用MonthView创build表单)。 .ocx本身就位于每台机器上,并且存在整套registry项(CLSID用于控件类,IID,typelib ID …)。 此外,这些registry项中的数据在A和B组机器上(GUID,ProgID,版本等)似乎是相同的。 在某些机器上,描述string(如“Microsoft MonthView Control 6.0(SP6)”的值)略有不同,但这似乎并不影响这种情况(B组中的一些机器具有不同的描述,但在其上创build的文件仍然可用)。 当然,由于墨菲定律,我用来编辑这些Excel文件的机器属于A组,所以这里保存的文件对B机器是“不可移植的”。 操作系统和Excel版本似乎不影响这种情况。 例如,B机器中的一个在Win 7 64位(Excel 2007)下工作,而大多数其他组A和B机器是Win XP Prof(32位)SP3,安装了Excel 2003。 所以看来,操作系统和Excel版本不会影响兼容性,并且问题与ActiveX有关。 我发现A和B组之间唯一与ActiveX相关的区别是mscomct2.ocx的文件版本:A机器中至less有几个版本是6.1.xx,而B组是6.0.xx我看不出有什么区别导致问题(毕竟ActiveX是COM对象,并且根据registry键值,暴露的typelib,com对象和接口在所有情况下似乎是相同的)。 尽pipe如此,我试图用6.0.xx版本取代我的6.1.xx ocx ,并且遇到了更多麻烦。 我所做的是: regsvr32 /u mscomct2.ocx – 已成功完成 用6.0.xx版本的文件replace了mscomct2.ocx regsvr32 mscomct2.ocx – 已成功完成 完成这些步骤之后,我尝试使用包含MonthView单个窗体创build一个Excel文件。 但是当我试图放置一个控件的forms,我有一个错误类没有注册的消息框。 这真是奇怪,因为一切似乎都被注册了:控制类,它的接口,typelib(是的,我已经检查过registry)。 但仍然有错误。 之后,我再次取消注册/replace/注册过程回到我原来的6.1.xx文件。 这使我回到原来的SNAFU情况:我可以再次安装ActiveX到用户窗体并使用它,但B组机器仍然给我的机器保存的文件上的错误。 我认为文件与ActiveX可移植性的问题和ocx注册的问题以某种方式连接,但我不知道如何。 […]

Excel文件,而通过JavaScript阅读

我知道这种types的问题不属于这里,但这是我最后希望得到答案和解决scheme。 我已经做了一个HTML和JavaScript程序来通过Active X读取Excel文件,但问题是,每当我运行该页时,它运行良好,但是当我closures它的Excel文件保持打开,如果我运行此页面100次,然后closures那么会有100个未closures的excel文件导致我的电脑变慢。 第二个问题是,当我试图打开该应用程序正在使用的Excel文件(应用程序当前没有运行,当我试图打开Excel文件),它不会打开没有提供错误,Excel文件的窗口打开并在第二小部分closures..我不知道该怎么做来解决这个问题。 如果在我的代码中有任何问题,那么在这里 var xVal = 1; var yVal = 2 function readdata(x,y) { x = xVal; y = yVal; try { var excel = new ActiveXObject("Excel.Application"); excel.Visible = false; var excel_file = excel.Workbooks.Open("D:\\Test1.xls");// alert(excel_file.worksheets.count); var excel_sheet = excel_file.Worksheets("Sheet1"); var data = excel_sheet.Cells(x, y).Value; //alert(data); drawWithexcelValue(data); xVal = xVal + 1; } catch […]

Excel ActiveX控件中断,“无法退出devise模式”,“对象库无效”

所以我最近买了一台新的电脑,安装了一个新的: Excel 2010 32位 Windows 7 Professional 64位 有几个奇怪的问题正在发生: 在过去,使用activeX控件创build的许多excel工作簿现在给我一个编译错误“ 对象库无效或包含对无法find的对象定义的引用 ”或者某些“ 无法退出devise模式,因为无法创build控件'CommandButton1' “错误。 不工作的特定控件是一个简单的CommandButton 。 目前用ActiveX控件创build的任何Excel工作簿都没有问题。 有些老版本的excel工作簿使用activeX工作,有些则没有。 过去创build的Excel工作簿在我们公司networking中的大多数其他机器上工作良好。 如果将含有ActiveX控件的电子表格复制粘贴到新的工作簿中,控件将再次开始工作。 如果我点击命令button上的“查看代码”,VBA窗口将用新的子程序名称创build新的button代码。 我知道很多关于这个问题的问题,但是解决scheme似乎不适合我。 EXD文件已被删除。 微软办公室已经重新安装 卸载Microsoft安全更新不是一个选项。 Windows已完全更新至2016年12月。 很多旧的解决scheme是3-6年前,可能已经过时了。 我试过在受影响的工作簿上“另存为”。 这不起作用。 任何有关这个问题的帮助将不胜感激!

如何在浏览器中显示Excel图表?

我有一个Excel表格包含Excel表格。 我可以使用iframe在浏览器上显示entier excel表单。 但是,我只想在浏览器的excel表单中显示图表。 我如何做到这一点? 我看到它需要Javascript + ActiveX APIs。 我尝试过,但无法使其工作。 请参阅下面的代码。 它不起作用,因为我无法dynamic地设置“对象”标签的数据属性。 它不允许。 <object id="objFrame" data="" type="application/vnd.ms-excel"></object> <script> var Excel = new ActiveXObject("Excel.Application"); Excel.Visible = false; document.getElementById("objFrame").data = Excel.Workbooks.Open("Test.xls").Sheets("Chart1"); Excel.Quit(); </script> 有没有其他办法可以做到这一点? 请张贴示例代码。 谢谢。