将奇数日期格式转换为数字

fullOfQuestions

我有一个VBA脚本,可从与此页面相似的页面中提取数据:

http://www.basketball-reference.com/friv/dailyleaders.cgi?month=12&day=30&year=2013

问题是,当它将“ MP”字段粘贴到Excel中时,它以一种奇怪的格式出现。例如,第一行显示的是39:42的Kevin Love,但在Excel中显示为15:42,当我单击它时,该值实际上显示为1/1/1900 3:42:00 PM

我尝试更改它导入到的列的格式并重新导入,但是得到的结果相同。

理想情况下,我希望它以39.66(39分40秒)的速度出现,但是如果它只是以冒号文本形式出现,那么我可以使其工作。

任何帮助将不胜感激!

编辑:这是我当前的代码,如果有帮助的话:

Sub DailyImport()
'
' DailyImport Macro
'

'
Dim day As Integer
Dim month As Integer
Dim year As Integer
Dim indexD As Integer
Dim indexM As Integer
Dim indexY As Integer

day = 1
month = 10
year = 2013
NextRow = 1

    For indexY = year To 2014
        For indexM = month To 12
            For indexD = day To 31
            Range("A" & NextRow).Select
            With ActiveSheet.QueryTables.Add(Connection:= _
                "URL;http://www.basketball-reference.com/friv/dailyleaders.cgi?month=" & month & "&day=" & day & "&year=" & year & "" _
                , Destination:=Range("$A" & NextRow))
                .Name = "dailyleaders.cgi?month=" & month & "&day=" & day & "&year=" & year & "_1"
                .FieldNames = False
                .RowNumbers = False
                .FillAdjacentFormulas = False
                .PreserveFormatting = True
                .RefreshOnFileOpen = False
                .BackgroundQuery = False
                .RefreshStyle = xlInsertDeleteCells
                .SavePassword = False
                .SaveData = False
                .AdjustColumnWidth = True
                .RefreshPeriod = 0
                .WebFormatting = xlWebFormattingNone
                .WebSelectionType = xlAllTables
                .WebPreFormattedTextToColumns = False
                .WebConsecutiveDelimitersAsOne = False
                .WebSingleBlockTextImport = False
                .WebDisableDateRecognition = True
                .WebDisableRedirections = False
                .Refresh BackgroundQuery:=False

            End With
            day = day + 1
            FirstRow = NextRow
            NextRow = Range("A" & Rows.Count).End(xlUp).Row + 1
            Range("AD" & FirstRow + 1, "AD" & NextRow) = month & "/" & day - 1 & "/" & year
            Next indexD
            month = month + 1
            day = 1
        Next indexM
        year = year + 1
        month = 1
        day = 1
    Next indexY

End Sub
马修·迈纳(Matthew Miner)

Excel以不幸的方式处理时间值。即使您更喜欢MM:SS,“:”分隔的数字也是HH:MM [:ss]。并且,在导入后更改列的格式为时已晚。因此,“ 39:42”被解释为24小时加15小时:42分钟,这又被解释为3:42:00 PM。这就是您所看到的。

解决方案:

  1. 如果您可以控制CSV导出,则可以将MP字段导出为'39:42(请注意开头的撇号),这会使Excel将其解释为字符串,您可以稍后使用相关函数进行解析。到目前为止,这是最简单的解决方案,因为每个人都会从中受益。

  2. 如果保存CSV文件,则可以在Excel打开/导入过程中控制列格式,然后将其更改为“文本”。单击数据选项卡>从文本导入按钮,然后逐步完成导入。

  3. 如果您对导出没有控制权,作为测试,我使用emacs替换([0-9] [0-9] :)为'\&。现在,我有39:42。(如果您不明白这一点,请查找“正则表达式”。)当然,如果这将成为常规,则可以使用Perl之类的脚本来对更改进行脚本编写。无论如何,请更改您的表,然后照常加载csv文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将日期格式代码转换为日期

来自分类Dev

将整数日期转换为实际日期

来自分类Dev

将日期格式转换为适当的格式?

来自分类Dev

Excel日期格式转换为数字

来自分类Dev

PostgreSQL将数字转换为日期和格式

来自分类Dev

将SAS数字日期转换为日期时间格式

来自分类Dev

使用lubridate解析/格式化奇数日期格式

来自分类Dev

将数字转换为日期

来自分类Dev

R将日期转换为错误的格式(将年份转换为5位数字)

来自分类Dev

将数字转换为所需的货币格式

来自分类Dev

如何将内部数字日期转换为访问日期/时间格式?

来自分类Dev

将SQL日期转换为标准格式

来自分类Dev

将double转换为mysql日期格式

来自分类Dev

将整数日期转换为实际日期

来自分类Dev

将奇数Stata字符串变量转换为日期

来自分类Dev

将时间戳转换为数字格式

来自分类Dev

将varchar(ddmmyyyy)转换为日期格式

来自分类Dev

使用NSNumberFormatter将数字转换为格式

来自分类Dev

将未知日期/日期时间格式的字符变量转换为数字日期

来自分类Dev

将Ymd日期格式转换为dmY

来自分类Dev

将数字转换为日期

来自分类Dev

将日期转换为标准格式

来自分类Dev

如何修复奇数日期(命令行命令)格式

来自分类Dev

将范围内的数字转换为日期格式| Javascript |

来自分类Dev

将日期格式转换为

来自分类Dev

将日期格式转换为高图

来自分类Dev

如何将矢量数字5位数字转换为日期格式

来自分类Dev

使用Python将数字转换为日期格式

来自分类Dev

将奇数时间格式转换为小时