【问题标题】:Excel 2002 Web Query screwing up en-GB datesExcel 2002 Web 查询搞砸了 en-GB 日期
【发布时间】:2010-09-23 02:57:06
【问题描述】:

下午好,

我在 Excel 2002 中有一个 Web 查询,该查询针对的是返回日期列的网页。日期返回为DD/MM/YYYY,因为我想在我的电子表格中显示它们。我运行 Excel 的机器将其区域设置设置为 en-GB,并且 Internet 选项下设置的唯一语言是英国英语。

尽管如此,网络查询将日期提取为 MM/DD/YYYY,这被 Excel 误解了。

如何让网络查询返回我的区域设置中的日期MM/DD/YYYY

【问题讨论】:

    标签: vba excel excel-web-query


    【解决方案1】:

    你能修改“网络查询”吗?

    通用日期格式是 Office 产品识别日期/时间的更好方法。我在使用 GB 到 US 日期时遇到了类似的问题,发现将日期编码为这种格式可以节省很多麻烦。

    Universal Date format is : "yyyy-mm-dd hh:mm:ss"
    

    【讨论】:

      【解决方案2】:

      也许你很幸运,Excel 可以理解 HTML lang 属性或 <meta http-equiv="content-language" content="..."> 元标记。老实说 - 我的猜测是它没有任何区别。

      如果您可以控制该网站,您可以尝试添加它们,看看是否会有所作为。 OTOH - 如果您拥有对网页的控制权,则可以更改日期格式。

      另一种方法是完全禁用日期识别并在查询后手动对其进行后处理。为此,请重新创建 Web 查询并在“新建 Web 查询”对话框中单击右上角的“选项...”按钮。有一个“禁用日期识别”复选框。

      【讨论】:

        【解决方案3】:

        Excel 网络查询在国际化方面非常糟糕。它也对我不起作用。我最后要做的就是手动提取数据,使用宏,解析它的语言环境并放到工作表上。幸运的是,我查询了一个返回 XML 的 Web 服务,所以很容易。如果您解析 HTML,请执行 Tomalak suggested

        【讨论】:

          【解决方案4】:

          在 Excel 2007 中,更改区域设置中的日期格式效果很好。

          【讨论】:

            【解决方案5】:

            网页格式为 en-GB。我将控制面板中的区域设置更改为 en-GB。我将 Internet 选项语言更改为 en-GB。

            不过,Excel 的 Web Query 仍以 en-US 形式返回数据。我看不出你的建议有什么帮助。在这种情况下,后处理不是一种选择。

            【讨论】:

            • Internet 语言选项在这里根本不是问题,您可以忽略此设置。禁用日期识别可能是您唯一的机会,为什么不能选择?
            • 顺便说一句,只要您不回答自己的问题,您就真的应该使用 cmets(而不是答案)。
            【解决方案6】:

            在 VBA 编辑器中,尝试设置

            WebDisableDateRecognition

            标准网络查询命令中的属性:

            With Selection.QueryTable
                .Connection = _
                "URL;http://whateverYourURLis"
                .WebSelectionType = xlSpecifiedTables
                .WebFormatting = xlWebFormattingNone
                .WebTables = "7"
                .WebPreFormattedTextToColumns = True
                .WebConsecutiveDelimitersAsOne = True
                .WebSingleBlockTextImport = False
                .WebDisableDateRecognition = True
                .WebDisableRedirections = False
                .Refresh BackgroundQuery:=False
            End With
            

            (请注意,您可以通过在进行网络查询时简单地录制宏来获得与上述相同的效果...)

            在这里工作得很好,希望它也适合你。

            干杯!

            【讨论】:

              猜你喜欢
              • 2013-12-31
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-05-11
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多