Questions tagged «vba»

Visual Basic for Applications(VBA)是一种事件驱动的,面向对象的编程语言,用于编写宏,用于整个Office套件以及其他应用程序。VBA不等同于VB.NET或VBS;如果您在Visual Studio中使用,请使用[vb.net]。如果您的问题是有关对任何MS Office应用程序进行编程的,则还请使用适当的标记:[excel],[ms-access],[ms-word],[outlook]或[ms-project]。

11
Microsoft Excel ActiveX控件已禁用?
我有一些使用ActiveX复选框控制某些活动的Excel工作表。他们最近工作,但今天开始出错。一位同事向我发出了警报,但它仍在我的计算机上工作。我对照我检查了他的Excel版本,他的版本较新。我注意到有新的Windows更新,所以我做了更新。应用待处理的更新后,它现在不再可以在我的计算机上运行。我再也无法选中ActiveX复选框,并且作为尝试调试的一部分,看来我什至无法再向任何工作表,甚至是新工作表中添加ActiveX控件。我收到一个错误对话框,提示“无法插入对象”。(我仍然可以添加表单控件,只是不能添加ActiveX。)在最近更新之后是否还有其他经历?有什么建议? 谢谢, 麦克风
113 excel  vba  activex 


7
如何取消更新链接警告?
我正在尝试编写一个可打开许多Excel文件的脚本。我不断收到提示: This workbook contains links to other data sources. 我希望不显示此消息,以便我的脚本可以自动浏览所有工作簿,而无需我Don't Update为每个工作簿单击。目前,我正在使用以下内容: function getWorkbook(bkPath as string) as workbook Application.EnableEvents=False Application.DisplayAlerts=False getWorkbook=Workbooks.Open(bkPath,updatelinks:=0,readonly:=false) end function 但是,该消息仍然出现。我该如何抑制它? 编辑:看来,此消息是针对具有断开链接的工作簿的;我没有看到此This workbook contains one or more links that cannot be updated消息,因为我设置DisplayAlerts为false。这些工作簿已链接到Windows服务器上某个文件夹中的等效文件,因此,从该文件夹中删除匹配文件时(这是我们业务流程的一部分),该链接会中断。链接断开时是否可以抑制警告? 另外,我正在使用Excel 2010。
109 excel  vba 

3
打破While…Wend循环
我正在使用VBA的While ... Wend循环。 Dim count as Integer While True count=count+1 If count = 10 Then ''What should be the statement to break the While...Wend loop? ''Break or Exit While not working EndIf Wend 我不想使用类似`While count <= 10 ... Wend的条件
107 excel  vba  while-loop 

15
如何暂停特定的时间?(Excel / VBA)
我有一个包含以下宏的Excel工作表。我想每秒钟循环一次,但如果我能找到执行此操作的功能,就会感到惊讶。有可能吗 Sub Macro1() ' ' Macro1 Macro ' Do Calculate 'Here I want to wait for one second Loop End Sub
103 excel  vba 

6
VBA-如何有条件地跳过for循环迭代
我在数组上有一个for循环。我想做的是在循环中测试特定条件,如果为true,则跳至下一个迭代: For i = LBound(Schedule, 1) To UBound(Schedule, 1) If (Schedule(i, 1) < ReferenceDate) Then PrevCouponIndex = i Continue '*** THIS LINE DOESN'T COMPILE, nor does "Next" End If DF = Application.Run("SomeFunction"....) PV = PV + (DF * Coupon / CouponFrequency) Next 我知道我可以做: If (Schedule(i, 1) < ReferenceDate) Then Continue …
101 vba  conditional  loops 

7
如何使用VBA添加自定义功能区选项卡?
我正在寻找一种在Excel功能区中添加自定义标签的方法,该标签将带有几个按钮。我碰巧有一些资源可以通过Google解决,但所有这些看起来都很晦涩难懂且异常复杂。 快速简便的方法是什么?我希望在VBA加载到Excel中时加载新标签。 更新:我从这里尝试了此示例,但是在最后一条指令上出现“需要对象”错误: Public Sub AddHighlightRibbon() Dim ribbonXml As String ribbonXml = "<mso:customUI xmlns:mso=""http://schemas.microsoft.com/office/2009/07/customui"">" ribbonXml = ribbonXml + " <mso:ribbon>" ribbonXml = ribbonXml + " <mso:qat/>" ribbonXml = ribbonXml + " <mso:tabs>" ribbonXml = ribbonXml + " <mso:tab id=""highlightTab"" label=""Highlight"" insertBeforeQ=""mso:TabFormat"">" ribbonXml = ribbonXml + " <mso:group id=""testGroup"" label=""Test"" autoScale=""true"">" …



4
Excel VBA中的“!=”等效项是什么?
问题是!=不能在excel vba中作为功能使用。 我想能够使用 If strTest != "" Then 代替 If strTest = "" Then 除此以外,还有其他方法!=吗? 我模仿的功能!=是 Sub test() Dim intTest As Integer Dim strTest As String intTest = 5 strTest = CStr(intTest) ' convert Range("A" + strTest) = "5" For i = 1 To 10 Cells(i, 1) = i If …

5
在单元格更改时自动执行Excel宏
每当特定单元格中的值更改时,如何自动执行Excel宏? 现在,我的工作代码是: Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("H5")) Is Nothing Then Macro End Sub "H5"被监视的特定单元格在哪里Macro,宏的名称。 有没有更好的办法?
91 excel  vba  automation 


4
如何以编程方式添加参考
我编写了一个程序,该程序可以运行并在完成时向Skype发送信息。我需要添加参考Skype4COM.dll,以便通过Skype发送消息。我们在网络上有一打左右的计算机和一个共享文件服务器(除其他外)。所有其他计算机都需要能够运行此程序。我希望避免手动设置参考。我计划将引用放在一个共享的位置,并在程序运行时以编程方式添加它。 我似乎无法弄清楚如何使用VBA以编程方式向Excel 2007添加引用。我知道如何手动执行:打开VBE --> Tools --> References --> browse --_> File Location and Name。但这对我的目的不是很有用。我知道可以在Access Vb.net中执行此操作,并且类似的代码会不断弹出,但是我不确定我是否理解它,或者它是否相关: ThisWorkbook.VBProject.References.AddFromGuid _ GUID:="{0002E157-0000-0000-C000-000000000046}", _ Major:=5, Minor:=3 到目前为止,在提出的解决方案中,为了以编程方式添加参考,我将需要手动添加参考并更改信任中心-这不仅仅是添加参考。尽管我猜想我能遵循提出的解决方案,但我将能够以编程方式添加将来的参考资料。这可能值得付出努力。 任何进一步的想法将是巨大的。
89 excel  vba  reference 


8
在Excel中解析ISO8601日期/时间(包括TimeZone)
我需要将Excel / VBA中包含时区(来自外部来源)的ISO8601日期/时间格式解析为正常的Excel日期。据我所知,Excel XP(我们正在使用的)没有内置的例程,因此我想我正在考虑使用自定义VBA函数进行解析。 ISO8601日期时间看起来像其中之一: 2011-01-01 2011-01-01T12:00:00Z 2011-01-01T12:00:00+05:00 2011-01-01T12:00:00-05:00 2011-01-01T12:00:00.05381+05:00

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.