Tag: 词典

ActiveX组件不能创build对象 – Mac的Excel

我试图获得一个包含macros的Excel 2011 32位(for Mac)电子表格。 问题是,这个macros在PC上正常工作,但不是在Mac上。 我试图导入蒂姆·霍尔的Dictionary.cls,但它仍然无法正常工作。 对于KeyValuePair.cls同样的事情。 错误:运行时错误“429”ActiveX组件无法创build对象 我不是程序员,所以问题可能是我,不知道要改变什么才能使事情正常工作。 那些知道自己在做什么的人可能是非常容易的。 任何人都可以花几分钟时间查看这些文件,并告诉我需要更改哪些部分才能运行? [我认为它确实有效…] FWIW,我试图用“New.Dictionary”replace“Scripting.Dictionary”在两个地方(见下文),但是没有得到它的工作。 Set dAttributes = CreateObject("New.Dictionary") Set dValues = CreateObject("New.Dictionary”) RandomiseData文件: Option Explicit Sub GenerateResults() Dim LO As ListObject Dim LO2 As ListObject Dim LR As ListRow Dim ws As Worksheet Dim cCount As Integer Dim gCount As Integer Dim dAttributes As Object Dim […]

尝试从VBA字典中检索值,如果密钥未被使用会引发错误?

我已经使用了多种其他语言的字典(不pipe它们是否被调用),但总是有一种方法可以用on参数来调用: A)如果参数被用作键,则返回相关的值 B)以某种方式指示参数不被用作关键字 我已经被迫进入一个职位,在那里我必须学习excel / VBA,并且在缺乏存在方法让我去寻找别的东西之前大约五分钟使用集合类。 普遍的共识似乎是脚本.Dictionary类是其他语言中的关联数组/字典/散列表的VBA等价物。 我不喜欢外表的唯一方法是我可以看到检索与给定键相关联的值的唯一方法是使用.items属性(显式地或通过scripting.Dictionary(“key”)) )。 但是,如果在字典中没有使用密钥,而不是做任何事情来表明问题,它就会添加它。 我知道我可以使用一个if结构.exists作为testing来实现相同的function,并且可以编写我自己的函数,如果存在testing失败时会引发错误,但是看起来很多东西是实现什么是核心function在Python(引发KeyError),PHP(引发一个通知),Java(地图返回null – 虽然这不一定是理想的情况下HashMaps空实际上是一个有效的值 – 但它确实工作作为HashTables的指标)。 那么是否有任何方法试图通过密钥来检索值,如果密钥没有被使用,会做一些事情(理想情况下抛出一个错误),而不是默默地添加它? 谷歌没有提供任何答案 – 但也许我只是没有措词search的好。

Python:通过嵌套字典迭代时的冗余

我有一个嵌套字典,我试图通过循环来写入一个Excel文件。 这是启动并创build嵌套字典的代码 def tree(): return defaultdict(tree) KMstruct = tree() for system in sheet.columns[0]: if system.value not in KMstruct: KMstruct[system.value] for row in range(1,sheet.get_highest_row()+1): if sheet['A'+str(row)].value == system.value and sheet['B'+str(row)].value not in KMstruct: KMstruct[system.value][sheet['B'+str(row)].value] if sheet['B'+str(row)].value == sheet['B'+str(row)].value and sheet['C'+str(row)].value not in KMstruct: KMstruct[system.value][sheet['B'+str(row)].value][sheet['C'+str(row)].value] if sheet['C'+str(row)].value == sheet['C'+str(row)].value and sheet['D'+str(row)].value not in KMstruct: KMstruct[system.value][sheet['B'+str(row)].value][sheet['C'+str(row)].value][sheet['D'+str(row)].value] KMstruct[system.value][sheet['B'+str(row)].value][sheet['C'+str(row)].value][sheet['D'+str(row)].value] = […]

Excel VBA字典可以用来调用一个函数吗?

我有大量的function,我需要调用哪个具有相同的参数,我希望能够集中它们,以避免笨拙的代码块。 显然我可以使用包装函数来调用所有其他函数,但是我并不总是全部调用它们。 我的下一个想法是,我可以将函数放在列表或字典中,并从那里调用它们,就像在Python中一样: def foo(): return "foo" myDict = { "foo": foo } myDict["foo"]() 返回foo 在VBA中有类似的可能吗? 如果是这样,做到这一点最简单的方法是什么?

在词典的excel里面引用词典的Dictionary内部 – VBA Object Required Error

正确,所以我有一个Excel程序,循环通过多个PDF并从中提取数据。 为了这个工作,它使用了一个名为范围的RubricItems,RatingsValuesRow和RatingsColumn的关键值的标题。 我必须使用命名的范围,因为在任何给定的时间,标题可能会改变。 贝娄是我有问题的代码片段。 对于rubricItemC.value = 1,subRubricItem = a,ratCell = 4 Dim ratingsCol As Range Dim ratingsVal As Range Dim rubricItem As Range Dim rubricItemC As Range Dim subRubricItem As Range Dim gradeCount As Integer Dim c As Range Dim ratCount As Range Dim ratCell As Range count = 0 gradeCount = 0 Set rubricItem […]

如何使用PyXll添加Excel单元格到Python字典

我在Excel中有以下数据: Column(A) Column(B) Column(C) Header1 Header2 Header3 A 100 USD B 200 USD C 300 USD D 400 USD E 500 USD … … … 我需要将这些数据添加到以下格式的字典中(带有元组的字典): my_dict = { "A":(100,"USD"), "B":(200,"USD"), "C":(300,"USD"), "D":(400,"USD"), "E":(500,"USD") … } 我安装了PyXll for Excel 2010,并且正常工作,我正在使用Python 2.7。 特别是,我无法弄清楚如何使用PyXll引用Excel单元格。

recursion地打印VBA中的下一个字典

我想在VBA中打印嵌套字典。 基本上我有一个Dictionary ,其中每个键是一个String ,但每个值可以是一个String或另一个Dictionary 。 说我的Dictionary已经有了价值 { "FOO" => "BAR" , "HELLO" => { "WORLD => ":)", "OTHER" => ":(" } } 我想在Excel电子表格中显示: FOO |BAR | HELLO|WORLD|:) HELLO|OTHER|:( 我的问题是,我需要find一种方法来猜测每个键下的值是什么types,所以当我调用dict("HELLO")我可以显示值,如果它是一个string或如果它是一个字典调用同样的function。 为了做到这一点,我需要知道: 如果有一种方法可以知道字典中存储的值的types是什么 如果有方法将该值转换为目标types(string或字典) 所以这是我所尝试的 Function display_dictionary(dict As Scripting.Dictionary, out As Range) As Integer Dim vkey As Variant Dim key As String Dim row_offset As Integer Dim […]

Fastests方法将字典清空到Excel工作表中

将Scripting.Dictionary清空到Excel表格最快的方法是什么? 这就是我现在正在做的,但是对于一个有大约3000个元素的字典来说,这个字典显然很慢。 我已经做了每个我能想到的优化。 这是我的一个简单的版本: 'wordCount and emailCount are late bound "Scripting.Dictionary" objects Private Sub DictionaryToExcel(ByRef wordCount As Object, emailCount As Object) oExcel.EnableEvents = False oExcel.ScreenUpdating = False Set oWorkbook = oExcel.Workbooks.Add oExcel.Calculation = -4135 With oWorkbook.Sheets(1) iRow = 1 For Each strKey In wordCount.Keys() iWordCount = wordCount.Item(strKey) iEmailCount = emailCount.Item(strKey) If iWordCount > 2 And […]

Excel VBA – Dictonary.Exists(Dictionary)?

想更好地了解如何比较对象types的键。 dicOverall.exists(dic2)返回False而dicOverall.exists(dic1)返回True 。 我不太清楚如何.Exists比较的东西(循环?),但无论如何,我可以得到.Exists(dic2)返回True ? 谢谢! Sub test() Dim dic1 As Object Dim dic2 As Object Dim dicOverall As Object Set dic1 = CreateObject("scripting.dictionary") Set dic2 = CreateObject("scripting.dictionary") Set dicOverall = CreateObject("scripting.dictionary") dic1("Hi") = 1 dic1("Hello") = 1 dic2("Hi") = 1 dic2("Hello") = 1 dicOverall(dic1) = 1 Debug.Print dicOverall.exists(dic2) End Sub

在VBA中启用字典对象

当我在Excel VBA中启动一个字典对象时,我发现了两种方法: 使用CreateObject("Scripting.Dictionary") (否“Microsoft脚本运行时”); 首先打开引用“Microsoft Scripting Runtime”,然后使用Dim dict As New Scripting.Dictionary 他们两个在我的机器上工作。 我想知道这两种方法有什么区别?