Excel 格式不会自动更改

Excel 格式不会自动更改,excel,vba,Excel,Vba,我想将格式从日期改为数字,但格式不变。我必须在每个单元格上单击两次才能更改它 我在这里找到了一个文本到列的解决方案。不幸的是,录制的代码不起作用 Worksheets("Data for LN").Range("i2:i" & datarange).Select Selection.NumberFormat = "0.00" Selection.TextToColumns Destination:=Range("I2"), DataType:=xlDelim

我想将格式从日期改为数字,但格式不变。我必须在每个单元格上单击两次才能更改它

我在这里找到了一个文本到列的解决方案。不幸的是,录制的代码不起作用

     Worksheets("Data for LN").Range("i2:i" & datarange).Select
     Selection.NumberFormat = "0.00"
     Selection.TextToColumns Destination:=Range("I2"), DataType:=xlDelimited, _
          TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
          Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
          :=Array(1, 1), TrailingMinusNumbers:=True

您知道如何更改它吗?

请查看文档,特别是
FieldInfo
参数<代码>数组(1,1)不是您想要的。首先要做的是删除该
。选择
调用,声明
工作表
范围
局部变量,分别将它们分配给
工作表(“LN数据”)
工作表.Range(“i2:i”和datarange)
,然后使用
theRange
theSheet.Range(…)
而不是
Selection
和implicit
ActiveSheet
恐怕您需要重新编写代码,以循环遍历某个范围内的每个单元格,并分别修改其数据类型。VBA在记录
TextToColumns
功能方面存在一些严重问题,从头开始编写它甚至更困难。参见Rory的解决方案,了解一些替代方案。