我确实有一个奇怪的问题,寻找一个有优雅解决方案的人。 我使用像
这样的东西 With destCell.Parent.QueryTables.Add(Connection:="TEXT;" & exportUrl, Destination:=destCell)
'all these have sane defaults, yes, but if the user used text to columns with something, this changes magically. So stupid
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileDecimalSeparator = "."
.TextFileThousandsSeparator = False
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileCommaDelimiter = True
.TextFileTabDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileConsecutiveDelimiter = False
' there is no way to set this to nothing, apparently.
.TextFileOtherDelimiter = ","
.TextFilePlatform = 65001 'UTF-8
.Refresh BackgroundQuery:=False
End With
从php Web应用程序中获取数据。我在URL中有访问密钥作为查询参数。如果他们是正确的,一切都很好。 如果它们错了,php会返回一个http 403页面。这使Excel引发错误1004,我抓住了,一切都很好。 现在,对代码的任何后续调用,改变(现在正确)访问密钥stil都会提高1004. Excel根据服务器日志甚至不再启动http请求。看起来它正在缓存http响应代码。
由于用户必须输入密钥,因此很容易发生错误。我想提出进入正确的,但上述情况会让他们看起来仍然错误......
欢迎您的想法! 运行Excel 2016,如果这会产生影响。
答案 0 :(得分:0)
"溶液"实际上是一种解决方法。我不再发送http 403,而是处理有效载荷中的erorr。 这只留下连接问题。因为它们应该是罕见的,我现在只是要求用户重新启动excel,如果发生这种情况。