Tag: 用户控件

Excel VBA哪个UserForm控件触发共享MouseOver类事件?

如何返回触发mouseover类事件的用户表单控件的名称? 这听起来很简单,但老实说,我一直在试图find正确的语法,我的大脑… 这是我的用户表单模块: Option Explicit Dim dArray() As New Class1 Sub Build_Controls() Dim dImage As Object, i As Integer For i = 1 To 3 Set dImage = UserForm1.Controls.Add("Forms.Image.1", i, True) With dImage .Left = (25 * i) + 20 .Width = 20 .Top = 10 .Height = 20 End With ReDim Preserve dArray(1 To […]

VBA – IF语句与AND不工作

任何帮助将是伟大的。 我似乎不能用AND来得到ELSEIF。 我正在使用一个用户的forms。 当他们按下button时,用户窗体显示checkbox。 当两个checkbox都被选中时,我遇到了麻烦。 单独他们工作正常, 我不知道我做错了什么。 任何帮助将不胜感激 If Intact.Value = True Then storDate = Sheets("escalation").Cells(Selection.Row, 2) storProject = Sheets("escalation").Cells(Selection.Row, 3) StorBill = Sheets("escalation").Cells(Selection.Row, 4) storIntact = "Intact" With objWord.ActiveDocument .formfields("text2").Result = storDate .formfields("Text3").Result = storProject .formfields("Text4").Result = StorBill .formfields("Text9").Result = storIntact End With ElseIf Compugen.Value = True Then storDate = Sheets("escalation").Cells(Selection.Row, 2) storProject = […]

在Excel中奇怪的ActiveX列表框行为

在Excel 2007 SP3中,我有一个多列,多selectActiveX列表框的工作簿。 在大多数电脑上,它工作正常。 但是在一个用户的计算机上,当我从该列表框中读取数据并将数据写入另一个表单时,字体变小了。 每次执行任务的命令button都会被点击一次。 我们所有的计算机都在Excel 2007 SP3和Windows 7上。其中只有一个有这个问题; 它在其他的工作正常。 通过在受影响的计算机上的代码,我发现问题发生时,尽pipe实际显示的字体显然更小,但列表框仍然报告了12(原始的,正确的字体大小)的字体大小。 当我将列表框的字体大小设置为12时,什么都没有发生。 但是,当我把字体大小设置为10时,它变成了10.然后当我把它改为12时,它回到12,看起来是正确的。 但是,这改变了列表框的高度和宽度,并且取消了用户的任何select(正如我提到的那样)。 正如你所知道的,一个解决方法是需要设置列表框的高度到一个精确的高度,这将允许在底部的最后一个可见的项目被选中。 每次单击该button时,必须重新运行该解决方法。 但受影响的计算机上仍然存在两个问题:第一,即使在整个过程中closuresScreenUpdating,在快速计算机上resize仍然需要大约半秒钟的时间,在此期间,用户看到奇怪的小列表框字体。 – 其次,即使我每次告诉高度和宽度都是一样的,但每次最终都会有不同的尺寸,每个尺寸至less有三种尺寸。 所以对用户来说也是很奇怪的。 我忘了在用户的计算机上testing最后一个可见列表项是否可以按照解决方法进行select,并且在下一个机会之前还有一段时间。 所以 – 任何build议? 我不知道受影响的计算机和其他计算机之间的configuration有什么不同。 相同的Excel版本,相同的Service Pack,相同版本的Windows。

为不同的用户分开Excel用户表单标签

我在工作表中有数据,这些数据是作为用户注册到他select的访问types(作为学生或教授)而生成的。 我有两个用户forms(frmStudent和frmProfessor)。 我的问题是,如何在用户login时更改用户窗体的标题(姓名,课程/部门,性别) 例如:当user123login时,frmStudent显示在工作表中列出的相应的名称,课程和性别是用户表单的标签中显示的内容。 (frmStudent.lblname.caption会更改为“Bogart MAngifico”,当然还有性别)。或者,如果user456loginfrmProfessor显示,并且与标签一样。 另外,在他们的注册过程中,我让他们select使用两个选项button的访问types。 我曾尝试使用循环(我用作frmLogin,检查用户名和密码是否正确),但我似乎无法使其工作。 显示代码可能会有帮助。 请考虑我的问题,因为我是VBA新手。

Excel窗体控件的奇怪性与清除filter有关

我首先会说我已经在另一个论坛上发布了这个问题,在这里: http://www.excelforum.com/excel-general/1072528-form-control-oddity-with-respect-to-clearing-filters.html 尽pipe还没有收到任何答复,我希望这里的某个人能够帮助我。 我会在这里重申我在那里发布的内容,即: 我有一个简单的表,其中一列包含窗体控件(准确地说是选项或“无线电”button),表中的每一行都有一个表,它们的属性都设置为“用单元格移动和大小”。 这很好,因为我可以根据需要对表格进行sorting,这些对象保留在各自的行中。 不过,我刚刚注意到在这个表中重新过滤一个问题。 过滤一个列是好的,就像移除该filter一样, 但只有在后者通过下拉菜单中的“清除filter”选项完成 。 如果我select使用“ 数据”选项卡中的“ sorting和筛选”组中的“ 清除”选项,那么不是该筛选器的一部分(即隐藏)的任何行中的单选button都没有正确resize。 例如,如果您在提供的链接(对不起 – 我不确定我是否可以在此网站上发布文件)访问附加文件,并尝试在列E(分配?)上筛选“否”。 然后看看我所描述的两种不同的方式去除filter的结果。 奇怪的是,任何明智的操作都可以纠正这种情况,例如只改变一行的行高(甚至不必改变任何不同的东西 – 操作本身就足够了)。 或者只是简单地进入一个filter,然后点击确定,但实际上并没有select任何东西,而是直接返回。 这里发生了什么? 如何补救? 非常感谢您的任何意见。 问候

我如何在Excel中embedded文件,使用它,然后再次embedded到Excel工作簿的新版本我为Excel创build一个新的用户窗体控件?

我为Excel创build一个自定义Usercontrol(用户窗体),名称是虚拟窗体。 该控件将数据存储在工作簿所在的同一文件夹(例如:VFFile.vf)中创build的外部文件中。 如何将这个文件embedded到excel中(也许是OLEObject?还是有其他解决scheme?) 更多信息:我为excel创build了一个Usercotrol(ActiveX控件),它使用带有定义的外部文件(VFFile.vf)。 而现在为了避免开发人员总是要在他的电脑上定义文件的文件名,我想以某种方式将文件合并到Excel中(当他把这个控件放到Excel工作表时,控件也会把这个文件放入Excel工作簿)。 有没有办法做到这一点?

单元格值和checkbox更改时更改工作表

我有一个工作簿与多个表。 我有一个包含多个用户选项的菜单页面(input新订单,更新订单等)。每个选项旁边都有一个checkbox,根据选中的checkbox,单元格F4:F21从0更改为1 ,单元格B1更改为我要去的工作表的名称。 我在主菜单工作表中有以下的VBA,但是当我点击一个checkbox时,什么都不会发生。 任何想法为什么? 码 Private Sub Worksheet_Activate() ClearMenuForm End Sub Private Sub Worksheet_Change (ByVal Target As Range) Dim sh As String If Not Intersect(Target, Range("F4:F21")) Is Nothing Then sh = Cells(1, "B").Value Sheets(sh).Select End If End Sub

Excel VBA Userformdynamic运行时控件 – 跨多个控件触发相同的类事件

我正在构build基于Excel的应用程序,该应用程序基于外部数据在运行时dynamic构build。 这是空的用户表单: UserForm_Activate()代码 Private Sub UserForm_Activate() Dim f As Control, i As Integer mdMenuItems.BuildMenuItems mdTheme.GetTheme For Each f In Me.Controls If TypeName(f) = "Frame" Then i = i + 1 ReDim Preserve fra(1 To i) Set fra(i).fraEvent1 = f End If Next f End Sub mdMenuItems.BuildMenuItemsdynamic生成一系列基于外部数据的菜单项… mdMenuItems模块中的代码 Option Explicit Dim lbl() As New cMenuItem Public […]

如何处理Excel任务窗格中的用户控件,如模式对话框?

我在一个Excel加载项产品上工作,该产品包含一个具有多个用户控件的任务窗格。 我们已将login过程从模式用户窗体对话框移动到用户单击我们的loginfunction区button时显示在任务窗格内的Web浏览器控件。 期望的行为stream程将是: 用户单击function区上的loginbutton – login控件显示在任务窗格中 直到出现login结果(login成功,login失败或用户取消login), 用户将无法使用excel ,就好像正在显示模态login对话框 一旦login或login被取消,用户可以再次使用Excel。 换句话说,我希望任务窗格控件像一个modal dialog一样工作。 我有login控制工作很好,但我不知道有一种方法来模拟模态。 一旦用户点击loginbutton,他们可以自由地继续在Excel中工作,这是我们不想要的。 我一直在思考一些丑陋的解决scheme,比如试图阻止Excel中的每个窗口使用带有SendMessage的WM_SETREDRAW重新绘制,并绑定LockWindowUpdate,但是我真的希望有人会知道更好的方法来完成我正在尝试做的事情。 顺便说一下,这种types的function不仅将用于login控制,或者我们可能会继续,并将其放在modal dialog中。 我们也希望在我们允许用户继续使用Excel之前,让用户必须使用控件的其他两个控件也要这样做。

在C#中获取NamedRange控件的句柄

我正在开发使用C#(.NET 4.0)的Excel 2007的应用程序级AddIn。 以前曾问过类似这个问题>> https://stackoverflow.com/questions/11374023/resizing-namedrange-throws-a-controlnotfoundexception C#excel插件 – 访问控件 但对他们的回应(有的话)并不适合我。 所以我想详细描述一下我想做什么,以及当我尝试做什么时会发生什么。 简而言之,我的问题是我无法获得NamedRange控件对象来修改它们,在代码中的其他地方实例化和初始化之后。 请阅读更完整的说明。 当AddIn启动时,它创build一个NamedRange控件并将其附加到特定工作表上的某些单元格>> Worksheet worksheet = Globals.Factory.GetVstoObject( Globals.ThisAddIn.Application.ActiveWorkbook.ActiveSheet); Excel.Range cell = worksheet.Range["A1"]; _configParams.HeaderNamedRange = worksheet.Controls.AddNamedRange(cell, "HeaderCells"); _configParams.HeaderNamedRange.RefersTo = "=" + worksheet.Name + "!$A$1:$A$5"; AddIn启动后,我想要允许用户重新指定NamedRange控件可以指向的单元格。 为了这样做,我让用户select一个单元格范围,然后在合适的事件处理程序方法中获取所选单元格的位置(作为string)。 然后我打算以编程方式重新指定上述NamedRange控件指向的单元格。 我已经尝试了以下方法,但都没有工作。 [方法1] Worksheet controlWorksheet = Globals.Factory.GetVstoObject(Globals.ThisAddIn.Application.ActiveWorkbook.ActiveSheet); ((NamedRange)(controlWorksheet.Controls["HeaderCells"])).RefersTo = newHeaderCellsLocation; 在运行上面的代码,它会引发一个ControlNotFoundException,并得到以下消息: Microsoft.VisualStudio.Tools.Applications.Runtime.ControlNotFoundException was unhandled by user code Message=This document might […]