.net Excel.xlam加载项在启动时导致错误[错误-2147417848]
我最近编写了一个VBA模块,将d/l股价数据输入Excel(2016桌面)程序。它可以工作,但在Excel程序的加载项启动时会导致错误。它似乎正在尝试加载一些.Net工具(在本模块之前从未加载过),但此时失败,错误消息为-2147417848。单击“确定”后,代码将运行,但每次关闭所有Excel实例时,再次打开Excel将显示错误 我使用Power Query和宏记录器捕获了下面的代码。我很乐意从另一个使用CSV或JSON的工作实现的代码开始 提前感谢您提供的任何帮助或建议.net Excel.xlam加载项在启动时导致错误[错误-2147417848],.net,excel,vba,startup,add-in,.net,Excel,Vba,Startup,Add In,我最近编写了一个VBA模块,将d/l股价数据输入Excel(2016桌面)程序。它可以工作,但在Excel程序的加载项启动时会导致错误。它似乎正在尝试加载一些.Net工具(在本模块之前从未加载过),但此时失败,错误消息为-2147417848。单击“确定”后,代码将运行,但每次关闭所有Excel实例时,再次打开Excel将显示错误 我使用Power Query和宏记录器捕获了下面的代码。我很乐意从另一个使用CSV或JSON的工作实现的代码开始 提前感谢您提供的任何帮助或建议 Sub avGetQ
Sub avGetQuotes(symbol As String, history As Boolean)
'
' Fetch historical and current quotes from Alpha Vantage
'
Dim size As String
Dim qt As WorkbookQuery
Dim apiKeyNow As String
apiKeyNow = [MY API KEY]
If history Then
size = "full" 'all data
Else
size = "compact" '100 days
End If
'clear any previous query data
activeSheet.Range("A:G").EntireColumn.Clear
For Each qt In ActiveWorkbook.Queries
qt.Delete
Next qt
ActiveWorkbook.Queries.Add Name:="query1", _
Formula:="let" & Chr(13) & "" & Chr(10) & _
" Source = Json.Document(Web.Contents(""http://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED" _
& "&symbol=" & symbol & "&outputsize=" & size & "&apikey=" & apiKeyNow & """))," & Chr(13) & "" & Chr(10) _
& " #""Time Series (Daily)"" = Source[#""Time Series (Daily)""]," & Chr(13) & "" & Chr(10) _
& " #""Converted to Table"" = Record.ToTable(#""Time Series (Daily)"")," & Chr(13) & "" & Chr(10) _
& " #""Expanded Value"" = Table.ExpandRecordColumn(#" & """Converted to Table"", ""Value"", " _
& "{""1. open"", ""2. high"", ""3. low"", ""4. close"", ""5. adjusted close""}," _
& "{""Open"", ""High"", ""Low"", ""Close"", ""Adjusted close""})" _
& Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""Expanded Value"""
''Uncomment to run query on new sheet
'Sheets.Add After:=activeSheet
With activeSheet.ListObjects.Add(SourceType:=0, Source:=Array( _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""query1"";Extended Properties="""""), Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM [query1]")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "query1"
.Refresh BackgroundQuery:=False
End With
'Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
With activeSheet
.Range("A1:F1").AutoFilter
.Range("A1") = "Date" 'change from "Name"
.Range("F1:F501") = .Range("F1:F501").value 'Force first 500 adjusted prices from text to values
With .UsedRange.columns("A").Cells
.TextToColumns Destination:=.Cells(1), DataType:=xlFixedWidth, FieldInfo:=Array(0, xlYMDFormat)
.NumberFormat = "mm/dd/yy" 'change to any date-based number format you prefer the cells to display
End With
End With
'clean up Power Query
ActiveWorkbook.Queries("query1").Delete
Do While ActiveWorkbook.Connections.count > 0
ActiveWorkbook.Connections.Item(ActiveWorkbook.Connections.count).Delete
Loop
End Sub
在错误代码正确之前,您无法到达任何地方。它是负2147417848。谷歌的十六进制版本,以获得良好的点击率,0x80010106。用VBA代码做任何事情都是不可能的,即使在.NET中,这也是相当长的一段时间。否则就是典型的“交易者”问题。使用电话/电子邮件让每个人都参与进来帮助你。Hans-谢谢你的回复和更正。我搜索了您提供的十六进制代码,但该代码似乎有许多潜在原因,但我找不到任何与VBA、.Net或Excel加载项相关的内容。您曾写道,“使用VBA代码无法完成任何操作,即使在.NET中,这也是一个相当长的过程。”您能澄清一下吗?您的意思是,此错误不太可能是由VBA代码中的错误或加载.Net工具时出现的问题引起的吗?