等待DataNitro完成VBA调用

我从VBA中调用一个python脚本,如下所示: Sub python_call() Application.COMAddIns("DataNitro.DataNitro").Object.RunScript ("test.py") 'do some other stuff End Sub test.py需要一段时间才能运行,所以我希望VBA在运行剩下的代码之前等待。 除了Application.Wait之外,有没有办法做到这一点?

parsing复杂的XML文件

我在parsing从Excel中的API中检索到的XML文件时遇到问题。 我可以成功检索数据集(下面),但是我发现将每个字段格式化为自己的单元格为表格格式的解决scheme没有奏效,我想是因为XML格式化的方式。 每个XML将如下所示。 可能有多个消息ID需要独立提取。 (这是我遇到的另一个问题,“消息ID”中的空间引发了各种各样的错误。) 以下是我正在尝试使用的解决scheme: 如何使用vbaparsingXML <?xml version="1.0" encoding="utf-8"?> <methodResponse><item><methodName><![CDATA[legacy.message_stats]]> </methodName><responseData><message_data> <message id="9999"> <message_subject><![CDATA[50% rabatt på alla kort! Skicka ett personligt julkort i år!]]></message_subject> <date_sent>2015-09-13 19:15:48</date_sent> <message_notes><![CDATA[50% Off Holiday Cards, SE]]></message_notes> <withheld_total> 0</withheld_total> <globally_suppressed> 0</globally_suppressed> <suppressed_total> 0</suppressed_total> <bill_codes><![CDATA[emc_0914_HOLIDAYCARDS_SE]]></bill_codes> <sent_total> 15195</sent_total> <sent_total_html> 15195</sent_total_html> <sent_total_plain> 0</sent_total_plain> <sent_rate_total>100.00</sent_rate_total> <sent_rate_html>100.00</sent_rate_html> <sent_rate_plain>0.00</sent_rate_plain> <delivered_total> 15060</delivered_total> <delivered_html> 15060</delivered_html> <delivered_plain> 0</delivered_plain> <delivered_rate_total>99.11</delivered_rate_total> […]

根据条件汇总单元格

我很欣赏这可以被视为一个简单的问题。 我一直试图找出我要去哪里错了,因为我敢肯定它是简单的…从战略暴露选项卡,你可以看到他的战略是macros观或战术我有一个表(下),并有被要求总结所需的macros观和战术风险取决于有什么。 我想创build两个单独的单元格。 一个加起来“macros”,另一个加起来“战术”。 Strategy ExposureDescription ExposureRequired (USD) EUR_MACRO DAX INDEX 2,000,000 EUR_MACRO FTSE INDEX 4,000,000 EUR_MACRO CAC40 INDEX 1,100,000 EUR_MACRO S&P INDEX 10,000,000 JPY_MACRO NKY INDEX 4,000,000 JPY_MACRO S&P INDEX 34,000,000 USD_TACTICAL S&P INDEX 4,000,000 JPY_TACTICAL NKY INDEX 6,000,000 JPY_MACRO S&P INDEX 3,000,000 目前,我已经尝试了以下变体: =SUMIF(B$3:B$11,"*MACRO*",D$3:D$11)但是这个公式一直给出0的输出。 表格范围从(对angular)B2 – D11。

创build一周后popup

我有一个date列,我希望在每个date的一个星期后通过popup显示。 我不了解macros。 每次打开文档时都必须运行macros吗? 这是我迄今为止所做的: Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Long For i = 1 To Rows.Count if Cells(i, 1).Value<(TODAY()+7) And Not IsEmpty(Cells(i, 1).Value) then MsgBox Cells(i,1).Value + "Needs your attention!" Cells(i, 1).Font.Color = vbRed End If Next i End Sub 还没有testing呢。

错误1004“无法从pivottable获取pivotfield”

尽pipe这个话题已经出现了,但是就pivotfields中的错误1004而言,我只是没有看到这种情况,我需要解决这个问题,并且没有任何线索。 这是一个logging的macros代码: With ActiveSheet.PivotTables("SybusPivotTable").PivotFields("Lote") .PivotItems("0").visible = False .PivotItems("ERRO").visible = False End With With ActiveSheet.PivotTables("SybusPivotTable").PivotFields("Referência") .PivotItems("").visible = False .PivotItems("0").visible = False End With With ActiveSheet.PivotTables("SybusPivotTable").PivotFields("tipo_mov") .PivotItems("2").visible = False End With 我logging它,当一个macros运行…错误1004。 这是一个录制的代码,所以我期望它像一个魅力运行。 但不是。 err出现在第一行代码中。 任何线索? 提前致谢。

openpyxl不可读的内容

当使用openpyxl,如果我更新像这样的单元格样式: wb = Workbook() ws = wb.active a1 = ws['a1'] al.value = 'Hello World!' a1.style.font.name = 'Algerian' 在Excel中打开文件给出了一个错误: “Excel发现不可读的内容…” 日志文件: <?xml version="1.0" encoding="UTF-8" standalone="true"?> -<recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"> <logFileName>error107840_01.xml</logFileName> <summary>Errors were detected in file 'D:\Phocas\Phocas-Automation\test.xlsx'</summary> -<removedRecords summary="Following is a list of removed records:"> <removedRecord>Removed Records: Cell information from /xl/worksheets/sheet1.xml part</removedRecord> </removedRecords> </recoveryLog> 单元格显示正确的样式(font.name = Algerian),但在将文件分发给用户时,错误消息是不可取的。 这也只是一个例子,我得到同样的问题,如果我尝试像这样: a1.style.font.bold […]

我想创造一些基本上会去的“如果Q = O然后删除Q”

我有一段时间没有使用macros,所以我非常生锈,这可能超出了我必须开始的能力。 我只想删除个别Q字段的内容,而不是行或列或任何东西,所有我发现的有关删除macros的东西的东西包括删除行 用NULLreplaceQ也是一个解决scheme,如果这更容易做到的话? 非常感谢您的帮助。

使用高级筛选器vba过滤多页数据文档

各位程序员好! 在工作中,我被要求创build用于过滤数据的Excel文档。 我已经偶然发现了某些filter的一些困难,如下所述。 基本上我有一个文件列出了在某个游戏中所有可用的武器。 每种武器都可以在游戏中获得,例如武器1可以在任务1中获得。我需​​要过滤这些数据,以便search所有需要的武器,包括这个特定的任务或者某个行动。 所以如果我select例如任务3,我需要显示任务1 2和3的所有武器。 同样的行为机制。 我能够创造可怕的解决办法,如果发言涉及到,但是我们在游戏中有大约30个任务,所以同样的任务最终会挂在我自己身上。 为了更好地解释我的问题,我创build了一个带有示例数据的小型excel文档 ,它反映了我实现了1:1的真实文档“机制”。 要打破它,打开它后,你会看到三张: filter – 这是filter结果显示的那个。 完整列表 – 这是我们要过滤的武器的整个列表。 上午 – 这是游戏的行为和任务列表。 我正在使用这个macros来过滤行为(它开始后,你点击过滤行为button): Sub FilterActs() Sheets("Filter").Select Range("B10").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Clear Sheets("Full list").Range("A1:H175").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _ Sheets("Full list").Range("P1:P4"), CopyToRange:=Sheets("Filter").Range("B10"), Unique:=True Columns.AutoFit Range("B10").Select End Sub 由于您可以在完整的列表P1:P4中findIF语句,因此它适用于行为。 然而,我不知道如何自动执行此任务,而不使用gazilion IF语句。 如果我可以提供更多的信息,请通过评论通知我。 我会大大apprieciate从你们的任何意见,甚至对这个问题的完全不同的解决scheme。 非常感谢大家的时间! 最好的祝福 罗夫 PS。 我对这个整体vba excel新东西很陌生,第一次开始使用它,所以随时给我任何有用的提示。

以ms为单位读取时间戳,以Matlab中的科学格式显示

我有一个csv文件,包括一个时间戳列。 在记事本中,在Excel和Matlab中,数值显示为科学格式,例如'1,44532E + 12'。 因此,这个价值是非常不准确的。 在Excel中,我可以计算两个值之间的差异,并得到一个合理的差异。 因此,Excel中的科学格式就是格式。 实际的单元格内容是'1445322672767'。 我为什么在记事本中显示为'1,44532E + 12'。 但那不是我的问题。 我试图分析在Matlab的数据,但我无法。 我试过textscan,readtable和csvread。 但是,我无法获得除string以外的价值。 随着str2num这可以改为一个双精度,但只有6位数字的准确性(这是完全无用的)。 有什么build议么?

将Outlook电子邮件内容导出到Excel中

我收到格式如下的电子邮件: 我使用了某人在其他主题中获得的代码。 这里是代码: Const xlUp As Long = -4162 Sub ExportToExcel(MyMail As MailItem) Dim strID As String, olNS As Outlook.NameSpace Dim olMail As Outlook.MailItem Dim strFileName As String '~~> Excel Variables Dim oXLApp As Object, oXLwb As Object, oXLws As Object Dim lRow As Long strID = MyMail.EntryID Set olNS = Application.GetNamespace("MAPI") Set olMail = […]