Tag: 实例

Excel VBA:有没有办法引用存储在字典中的类的实例?

我目前有使用下图中显示的数据结构存储类的实例。 每个-List项目是一个字典,每个-Info项目是一个类的一个实例。 我读别处,如果你Set一个实例variables等于另一个实例,它只是引用原始实例。 它是否正确? 我已经能够使用下面的代码创buildfileInfo(1) (在图像中)的引用。 Dim prflInfo As File_Info Set prflInfo = New File_Info Set prflInfo = fileList.Items(0) 我试图使用下面的代码来引用branchInfo实例,但是我得到一个Run-time error 13: Type mismatch当我尝试这样做。 Dim prbrInfo As Branch_Info With prflInfo Set prbrInfo = New Branch_Info brKey = .getbrKey(0) Set prbrInfo = .getbrItem(brKey) End With 编辑:下面包含的是File_Info类的代码。 所有其他类都遵循这个基本模型。 'Class Module: File_Info 'Initialise class variables Private pfileID As […]

公式:计算表格范围内的文本实例

我想在一个设定范围内find文本的实例。 下面的公式将一般工作,并产生以下信息: =COUNTIFS($B$2:$B2;$B2) 助手名称 1鲍勃 2 Bob 约翰 约翰 3约翰 然而,用这个公式在表中插入数据并将数据插入到新行中,你可以在John的第二个实例中得到这个结果: =COUNTIFS($B$2:$B6;$B5) 帮助名称 1鲍勃 2 Bob 约翰 3约翰 3约翰 而约翰的第二个例子应该是: =COUNTIFS($B$2:$B5;$B5) 由于表格会在添加另一行时自动填写公式,是否有其他方法可以使此公式或选项使其工作? 可悲的是,下面的代码将不起作用: =COUNTIFS($B$2:$B&Row(B5);$B5) 感谢您的支持!

参考当前的Excel文件/工作表

我在Access窗体上创build了一个向导button,您可以将Query的数据传输到一个新的Excel文件,然后新的文件将自动打开。 有没有办法引用这个新的文件或工作表,因为我想把东西放在这个新的文件。

VBA从模块(excel)更改实例variables

在VBA中,我需要一个模块子来告诉一个实例来设置一些variables。 在模块1中我有: Sub Load() ThisWorkbook.SetupVariables ThisWorkbook.TestVariables End Sub 在ThisWorkbook中我有: Private Variable1 As Integer Private Variable2 As String Private Variable3 As MyUserDefinedObjectType Public Sub SetupVariables() Variable1 = 5 Variable2 = "Five" Set Variable3 = New MyUserDefinedObjectType() End Sub Sub TestVariables() MsgBox Variable1 & " is spelled " & Variable2 Variable3.SomeFunction End Sub Load()内的TestVariables调用产生正确的结果,但后续对TestVariables的调用失败。 我怎样才能使Variable1和Variable2保持其值? (在我现实世界的情况下,这些variables是我定义的对象,不能作为公共variables。) 事件顺序: […]

如何查找其他Excel实例并将其分配给Excel.Applicationvariables

我试图完成能够find其他Excel实例,并使用VBA控制它们。 学习其他线程这是我到目前为止,但由于某种原因,它不起作用。 我想要做的是以下几点: Dim xl as Excel.Application Dim objList As Object Dim objProcess As Object Set objList = GetObject("winmgmts:")._ ExecQuery("select * from win32_process where name='Excel.exe'") If objList.Count > 1 Then For Each objProcess In objList ' If objProcess <> Application Then ' Set xl = objProcess ' this is what doesn't work Exit For ' […]

macros完成后,VBA保留实例(Excel)

我有我自己的一些对象,我在Excel中的ThisWorkbook里面实例化。 我有一些麻烦 ,我认为这个问题是macros一旦结束VBA就会杀死我的实例。 我们正在使用ThisWorkbook : 如果我在macros中为ThisWorkbook定义自己的variables,那么即使variables在ThisWorkbook的类中Dim'd而不在模块中,该variables的值也会在macros完成后回到初始化值。 (即0,Nothing等) 如果我在Workbook_Open()事件中为ThisWorkbook实例化一个对象,则当事件完成时,该对象被销毁。 同样,即使variables在ThisWorkbook类中是Dim'd而不在Workbook_Open()的子类中, 有什么我可以做,以确保这些对象生存下来,这些variables保持其价值? 在ThisWorkbook : 'Object we want to survive Dim myInstance As MyObject Private Sub Open_Workbook() Set myInstance = new MyObject ' Object is instantiated End Sub ' Macro 1 Public Sub MyMacro() Set myInstance = new MyObject ' Object is instantiated End Sub ' Macro 2 […]

Excel 2013 – “启动时,打开所有文件”:仅在第一次运行

下午, 我刚刚升级到Office 2013,我试图去处理它。 自从Excel 2003到2007和2010年,我已经创build并使用了标准模板,用于存储在特定位置的新工作簿和工作表。 我使用高级Excel选项中的“启动时打开所有文件”选项来引用此位置,因此每次打开一个新的工作簿或工作表时,都会使用我的模板。 在Excel 2013中,它在第一个工作簿中工作,但是之后我打开的任何工作簿都会以标准打开。 如果我点击它时按住Alt键创build一个新的Excel实例,它也可以正常工作。 看起来,如果Excel 2013中的更改在同一个实例中以单独实例的forms打开工作簿,那么启动文件的缺点就是没有被访问。 有谁知道如何纠正或解决这个问题? 编辑:如果我使用默认的XLStartup文件夹相同的问题 SliderSteve

如何找出使用VBScript共享Excel文件的实例数量

我试图找出,使用VBScript,在不同的系统上运行共享的Excel文件的实例的数量。 假设文件是​​'test.xls',它被放置在共享驱动器上,不同的人正在访问它。 我想从VBscript中找出这个文件打开的位置。 要么 如果任何人都可以build议一个方法来实现在Excel文件上使用VBScript的信号量概念将是非常有帮助的。 也就是说,一次只能有一个人使用Excel文件。

“新”Excel.Application vs Excel.Application

我正在寻求澄清“新”对对象和剧本的影响。 我的理解是,如果我需要在Excel文档上执行操作,并且应用程序已closures,那么我应该使用New Excel.Application。 如果我保持这个应用程序处于活动状态(例如通过工作簿之类的对象),并且稍后在脚本中我决定打开另一个工作簿,那么我仍然应该使用New Excel.Application还是使用Excel.Application? 我的担心在于我要写一个长的脚本,至less在5个工作簿上执行操作。 我将不得不从一个工作簿切换到另一个,然后回到前… 如果每次脚本创build一个新的Excel.Application,我可能最终会有相当多的人在运行,我担心这个混乱会产生问题。 写下这样的东西比较合适吗? Dim NxlApp as New Excel.Application Dim xlApp as Excel.Application NxlApp.Workbooks.Open "C:\Users\…\WorkbookA.xlsx" NxlApp.Visible = True 'Perform actions on WorkbookA (keep it open) Set ExcelApp = GetObject("", "Excel.Application.14") xlApp.Workbooks.Open "C:\Users\…\WorkbookB.xlsx" xlApp.Visible = True 'Perform actions on WorkbookB (keep it open) 'Go back to WorkbookA (using the xlApp variable […]