我想自动循环浏览几百个XBRL文件,并收集某些特定数据并将其粘贴到excel工作表中。我设法使“切向代码”起作用,但无法回答核心问题。
例如,在XBRL文件中,我需要以下数据:
contextRef="CurrentDuration">1091134.68</pfs:GainLossBeforeTaxes><pfs:GainLossBeforeTaxes unitRef="U-EUR" decimals="INF"
==>我需要获取1091134.68
毫无疑问,对于Regex来说这很容易,但是我似乎无法正常工作。而且时间限制对我来说也很重要,因此到目前为止,我想获得某种最小可行的产品,然后再进行扩展,但是在这一点上,代码更像是一种达到目的的方法,而不是最终产品(分析)本身。
到目前为止,我提出了以下建议:
Sub EDI_Input()
Dim myFile As String
Dim textline As String
Dim StartPos As Integer
Dim EndPos As Integer
myFile = Application.GetOpenFilename()
Open myFile For Input As #EDI
Do Until EOF(EDI)
Line Input #EDI, textline
If InStr(textline, "NonRecurringFinancialCharges") <> 0 And InStr(textline, "CurrentDuration") <> 0 Then
Endpos = InStr(textline, "</pfs:NonRecurringFinancialCharges><")
result = Left(textline, Endpos - 1)
StartPos = InStr(textline, "Char(34)&CurrentDuration&Char(34)&>")
textline = Left(textline, StartPos + 18)
Debug.Print (textline)
End If
Loop
我一直在纠结“无效的调用过程或参数错误”,这可能是因为我在字符串中加载了许多数据。
有人对如何获得至少部分起作用的计划有任何看法-这样,我至少可以部分开始分析-或针对此问题的初学者/经验教程?
答案 0 :(得分:0)
欢迎使用StackOverflow!
我建议使用开放源代码的XBRL处理器,例如Arelle。如果我没有记错的话,您应该可以将事实导出为CSV等格式,并将其导入Excel。
否则,您最终将在VBA中重新实现XBRL处理器。为了获得正确的值,需要考虑许多涉及的细节(结合上下文,考虑尺寸等)。可以根据一个概念报告多个期间的值,等等。
XBRL处理器将立即执行此操作。