Tag: vba

如何使用单元格内的hex颜色值突出显示单元格?

我有一个符号和匹配hex颜色的电子表格。 我想用单元格内的hex颜色填充单元格本身(或旁边的单元格)。 我已经读了一些关于“条件格式化”的内容,我认为这是做到这一点的方法。 我怎么能达到我想要的结果?

Excel 2016触发撤消保存错误?

Excel 2016似乎在保存时触发以编程方式添加撤销级别,这在早期版本的Excel(2013,2010和2007)中不会发生。 要重现这种明显的错误,请打开一个新的工作簿并将其保存为启用macros的工作簿(.xlsm文件)。 将以下代码粘贴到ThisWorkbook模块中: Option Explicit Public WithEvents App As Application Private Sub Workbook_Open() Set App = Application End Sub Private Sub App_SheetChange(ByVal Sh As Object, ByVal Target As Range) Application.OnUndo "foo", "modTest.Undo" End Sub 然后,插入一个名为modTest的新模块并粘贴以下代码: Public Sub Undo() MsgBox "This is the Excel 2016 bug." End Sub 最后,保存工作簿并重新打开它。 在任何单元格中input任何值以触发Application.SheetChange事件。 保存工作簿(出于某种原因,您可能需要这样做两次),并且将显示modTest的消息。 任何人都可以解释这里可能会发生什么,和/或如何解决这个问题? 如果这确实是一个错误,那么向Microsoft报告的最好方法是什么? 这个代码是VBA,但是由于这个问题会影响用VB.NET和C#编写的VSTO插件,所以我包含了这些标签。

在VBA中查找单词的英文定义

在Excel中,如果我在单元格中input单词“PIZZA”,select它,SHIFT + F7,我可以得到一个很好的英文字典定义我最喜欢的食物。 很酷。 但我想要一个这样的function。 像“= DEFINE(”PIZZA“)”。 有没有办法通过VBA脚本访问微软的研究数据? 我正在考虑使用一个JSONparsing器和一个免费的在线字典,但它似乎像Excel有一个很好的字典内置。 有关如何访问它的任何想法?

为什么VBA TypeOf操作符在EXCEL中失败

我一直在与Excel 2007问题打了好几天了。 以下是我能想到的所有事实的列表,可能是相关的: IDetailSheet是一个在VBA项目中用几个方法声明的类,它在它的类初始化程序中抛出了一个错误,所以它不能被实例化(使其成为抽象的)。 Option Explicit在所有模块中设置。 VBA项目中的十个工作表实现 * IDetailSheet *并干净地编译(整个项目也一样)。 CDetailSheets是一个在VBA项目中声明的类,它封装了一个Collection对象,并将Collection对象公开为IDetailSheet的Collection。 它还暴露了一些额外的方法来执行所有收集会员IDetailSheet的某些方法。 在其初始化类(从Workbook _ Open事件处理程序调用并分配给全局variables)中, CDetailSheet将执行以下代码以填充专用收集DetailSheets : Dim sht as EXCEL.WorkSheet For Each sht in ActiveWorkbook.Worksheets If TypeOf sht is IDetailSheet Then Dim DetailSheet as IDetailSheet Set DetailSheet = sht DetailSheets.Add DetailSheet, DetailSheet.Name End If Next sht 在某些function区callback中,运行以下代码: If TypeOf ActiveWorkbook.ActiveSheet is IDetailSheet Then Dim […]

VBA Outlook调用Excelmacros并等待macros完成

我从Outlook规则脚本调用Excelmacros。 这个过程是:获取邮件,运行一个运行Outlook脚本的Outlook规则,从该脚本打开Excel,运行Excelmacros,closuresExcel。 如何在Outlook规则脚本中validationExcelmacros是否已完成,以保存并closures应用程序? Sub AskMeAlerts() Dim appExcel As Excel.Application Dim wkb As Excel.Workbook Set appExcel = CreateObject("Excel.Application") appExcel.Workbooks.Open ("C:\Ask me question workflow.xlsm") appExcel.Visible = True appExcel.Run "'Ask me question workflow.xlsm'!AskMeFlow" appExcel.DisplayAlerts = False appExcel.ActiveWorkbook.Save appExcel.Quit Set appExcel = Nothing Set wkb = Nothing End Sub

从VBA访问VSTO应用程序插件types(Excel)

我们有一个用于Excel的VSTO应用程序插件(不是文档插件),我们希望将事件暴露给VBA代码,以便VBAmacros可以在插件中引发此事件时执行一些操作。 我怎样才能得到的VBA代码能够订阅在VSTO应用程序插件中定义的事件? 我认为,因为在Excel过程中加载插件,这不应该太棘手,但还没有find一种方式。 顺便说一下,使用VS 2008和Excel 2007。 谢谢!

Excel VBA:数组variables中的variables

对变体的一个问题。 我知道Excel VBA中的变种既是默认的数据types,也是低效的(从大型应用程序过度使用的angular度来看)。 但是,我经常使用它们将数据存储在具有多种数据types的数组中。 我目前正在进行的一个项目本质上是一个需要大量优化代码(c.7000行)的任务 – 这让我思考; 有没有解决的办法? 解释; 代码经常将数据存储在数组variables中。 因此,请考虑10000个10列的数据集。列是多种不同的数据types(string,双精度,整数,date等)。 假设我想把它们存储在一个数组中,我通常会这样做。 dim myDataSet(10,10000) as variant 但是,我的知识说,这将是非常低效的代码评估每个项目,以确定什么样的数据types(实际上,我知道我期待什么)。 另外,我失去了控制个人数据types给我的尺寸。 所以(假设前6个是string,接下来的4个双打便于解释),我可以; dim myDSstrings(6,10000) as string dim myDSdoubles(4,10000) as double 这让我回到了控制和效率 – 但也有点笨重(在实践中,types是混合和不同的 – 我最终有一个奇数的元素在每一个,最终不得不在代码中分别分配它们 – 而不是质量)。 所以,它的一个案例; myDSstrings(1,r) = cells(r,1) myDSdoubles(2,r) = cells(r,2) myDSstrings(2,r) = cells(r,3) myDSstrings(3,r) = cells(r,4) myDSdoubles(3,r) = cells(r,5) ..etc… 这比丑陋得多。 myDataSet(c,r) = cells(r,c) […]

获取对象的所有属性的列表

有没有办法获得一个给定对象的所有有效属性的列表? 如果我想从单元格a1开始,然后分配a1,a2,a3,那么所有有效的属性例如工作表对象都是可以完成的事情吗? 我找不到任何: list = object.enumproperties 有任何想法吗?

如何从VBA中的另一个特定工作簿中调用函数?

我想知道是否有办法从另一个指定工作簿的模块调用VBA函数或方法,因为它可能不使用Application.Run特定的工作表 对于我可以调用的工作表,例如: ActiveSheet.MyTest() 如果在工作表模块中定义了MyTest 但是我想调用一个在模块中定义的函数 我试过了 : ActiveWorkbook.MyTestModule() ActiveWorkbook.VBProject.VBComponents("MyModule").MyTestModule(myArg) 哪些不起作用会产生错误对象不支持这种方法 我可以打电话 Application.Run(ActiveWorkbook.name & "!MyTestModule", myArg) 但我不确定Application.Run的error handling,我会find更清洁的方法直接运行

从数组数据创build图表,而不是范围

是否有可能创build一个图表(例如双Y轴线图)而不是从范围,但从arrays数据? 如果是这样,怎么样?