Tag: vba

Excel VBA代码模块的源代码控制

我希望能够控制我的Excel电子表格的VBA模块(目前使用Excel 2003 SP3),以便我可以共享和pipe理一堆不同的电子表格所使用的代码 – 因此,我想重新加载它们从电子表格打开时的文件。 我有一个名为Loader.bas的模块,用于完成大部分驴工作(加载和卸载任何其他需要的模块) – 我希望能够尽快从文件加载它随着电子表格打开。 我已将以下代码附加到Workbook_Open事件(在ThisWorkbook类中)。 Private Sub Workbook_Open() Call RemoveLoader Call LoadLoader End Sub RemoveLoader(也在ThisWorkbook类中)包含以下代码: Private Sub RemoveLoader() Dim y As Integer Dim OldModules, NumModules As Integer Dim CompName As String With ThisWorkbook.VBProject NumModules = ThisWorkbook.VBProject.VBComponents.Count y = 1 While y <= NumModules If .VBComponents.Item(y).Type = 1 Then CompName = .VBComponents.Item(y).Name […]

VBA VS. VSTO有什么区别,我应该升级吗?

我是KISS原则(保持简单)和Excel用户很长一段时间的VBA的狂热粉丝。 但是,我可以在VBA和VSTO(Visual Studio Tools for Office)上find的所有文章看起来都非常复杂。 首先,我厌倦了Excel中内置的非常差的IDE,我正在寻找一个新的IDE。 使用Visual Studio作为IDE的VSTO似乎是唯一的select。 所以我想了解VBA和VSTO之间的区别是否值得我学习使用VSTO?

用卸载closures用户窗体不起作用

当用户点击提交button并执行操作时,需要使用VBAclosuresExcel用户窗体。 如何closures自身的用户窗体? 我已经尝试过,但它返回一个361错误。 Unload Me

通过Python运行Excelmacros?

我试图通过python运行macros,但我不知道如何得到它的工作… 到目前为止我有下面的代码,但它不工作。 import win32com.client xl=win32com.client.Dispatch("Excel.Application") xl.Workbooks.Open(Filename="C:\test.xlsm",ReadOnly=1) xl.Application.Run("macrohere") xl.Workbooks(1).Close(SaveChanges=0) xl.Application.Quit() xl=0 我得到以下回溯: Traceback (most recent call last): File "C:\test.py", line 4, in <module> xl.Application.Run("macrohere") File "<COMObject <unknown>>", line 14, in Run File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 282, in _ApplyTypes_ result = self._oleobj_.InvokeTypes(*(dispid, LCID, wFlags, retType, argTypes) + args) com_error: (-2147352567, 'Exception occurred.', (0, u'Microsoft Excel', u"Cannot run the […]

在Excel VBA中插入CopyOrigin

任何人都可以告诉我什么插入的CopyOrigin参数用于? 它会接受什么样的价值? 我已经包括vba的帮助(这不是很有帮助): 将单元格或一系列单元格插入到工作表或macros表中,并将其他单元格移开以腾出空间。 expression.Insert(Shift,CopyOrigin)expression式必需。 一个返回一个Range对象的expression式。 Shift可选变体。 指定移动单元格的方式。 可以是以下XlInsertShiftDirection常量之一:xlShiftToRight或xlShiftDown。 如果省略此参数,Microsoft Excel根据范围的形状决定。 CopyOrigin可选变体。 复制原点。

macros将MS Word表格导出到Excel工作表

我有一个很多表格的文档。 有谁知道如何编写一个macros来将这些表导出到不同的Excel工作表?

从VB代码解除VBProject的保护

我怎样才能从vbmacros解除我的VB项目? 我发现这个代码: Sub UnprotectVBProject(ByRef WB As Workbook, ByVal Password As String) Dim VBProj As Object Set VBProj = WB.VBProject Application.ScreenUpdating = False 'Ne peut procéder si le projet est non-protégé. If VBProj.Protection <> 1 Then Exit Sub Set Application.VBE.ActiveVBProject = VBProj 'Utilisation de "SendKeys" Pour envoyer le mot de passe. SendKeys Password & "~" SendKeys […]

使用VBA查找Excel工作表中非空白列的数量

如何使用VBA查找Excel工作表中使用的列的数量? Dim lastRow As Long lastRow = Sheet1.Range("A" & Rows.Count).End(xlUp).Row MsgBox lastRow 使用上面的VBA,我可以find行数。 但是,如何find我给定的excel文件中的列数?

在VBA中比较单词时是否要区分大小写?

我正在开发一个VBA程序,它允许用户input一个地址,并通过将地址元素与数据库进行匹配来查找位置。 不幸的是,我遇到了大小写敏感的问题。 例如,当我使用这个代码: For i = 11 To lRowB Range("B" & i).Activate myResult = IsNumeric(Application.Match(ActiveCell.Value, manilaListRange, 0)) 它将比较活动单元格的值与我的数据库中的单词列表。 问题是,如果在我的活动单元格中的单词是“迈阿密”或“迈阿密”,只有“迈阿密”在数据库中,它不会工作… 其他例子: If Range("J6").Value = "tawi" Then Range("J6").Value = "Tawi-Tawi" End If 同样的问题,只有用相同的案例写的字才会奏效。 我怎样才能摆脱这个? 这是特别恼人的,我不能在每种情况下重写我的数据库组合! 提前致谢 !

VBA Excel简单的error handling

我尽可能在网上查找(除了Microsoft支持网站,由于某种原因在工作中被阻止)。 我试图简单地跳过一个错误。 我写在这里的代码是简化的,但应该以同样的方式工作。 我的代码应该做什么:我的一个潜艇在循环中创build形状并命名它们(btn_1,btn_2等)。 但在创build它们之前,它会调用一个试图删除它们的子文件,以免创build重复文件。 这个子循环遍历(btn_1,btn_2等),并使用以下命令删除形状: for i = 1 to (a certain number) Set shp = f_overview.Shapes("btn_" & i) shp.delete next 当然,这种形状不可能被删除,因为它根本不存在。 我发现大多数时候,build议的修复方法是在设置形状之前添加(在接下来的错误恢复),因为我得到一个错误,说它不存在。 我已经尝试了循环内循环,等等,如下所示: for i = 1 to (a certain number) On Error Resume Next Set shp = f_overview.Shapes("btn_" & i) shp.delete next 据我了解,如果形状不存在,应该循环遍历,但是我仍然会得到相同的错误,无论我是否继续添加On error resume! 我究竟做错了什么? 编辑:形状确实存在没有错误。