首页 文章

使用VBA excel 2010使文本更新列发生

提问于
浏览
0

我已经尝试创建一个宏来自动格式化列值以更改日期和时间,但是当运行宏时,单元格值不会自动更新 .

我目前需要使用VBA for excel 2010进行以下功能选择 .

数据/文本到列/下一步按钮(保持默认“分隔”)/下一步按钮(保持默认“选项卡”)/下一步按钮(保持默认“常规”/完成按钮

我尝试过录制功能,但VBA不起作用 . HELPPPPPPPPPPPPPPPPPPPPP !!!!!

到目前为止,这是我的代码 .

'Autochange_Extractdata_Date_Format Macro'表格(“数据提取”) . 选择

Columns("AK:AK").Select

Selection.NumberFormat = "m/d/yyyy"

Columns("AK:AK").Select

Selection.TextToColumns Destination:=Range("AK1"), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
    :=Array(1, 1), TrailingMinusNumbers:=True

结束子

2 回答

  • 0

    根据您描述的症状,听起来您的字段最初是TEXT格式,这就是为什么将其更改为数字格式无效 . 当您单击单元格时,它会自动将其转换为数字 .

    试试这个

    Columns("AK:AK").NumberFormat = "m/d/yyyy"
    Columns("AK:AK").Value = Columns("AK:AK").Value '//This will convert each properly
    
    Columns("AK:AK").Select
    
    Selection.TextToColumns Destination:=Range("AK1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 1), TrailingMinusNumbers:=True
    
  • 2

    因为我无法解决如何更新单元格值,我设法使用此代码来更改单元格值,而不是将日期时间更改为日期 .

    善待!!!

    'Autochange_Extractdata_Date_Format宏

    Sheets("Data Extract").Select
    Columns("AK:AK").Select
    Selection.NumberFormat = "m/d/yyyy"
    Range("AK4:AK999999").Select
    
    Dim c As Range
    
    For Each c In Selection
        Dim v As String
        v = c.value
    
        If c.value <> Empty Then
            c.value = DateValue(c.value)
        Else
            Exit For
        End If
     Next
     Range("A1").Select
    

    结束子

相关问题