例如,我使用宏将csv文件中的某些日期粘贴到excel中,并使用查找/替换将格式更改为一个excel可以识别的格式,例如从2019_10_22_08_43_23到22/10/2019 08:43:23 。在您手动选择单元格并按Enter之前,Excel不会将该文本识别为日期,因此在完成此操作之前,Excel不会在图形上正确显示日期。我当前的解决方案是使用
For Each c In cycleRange.Cells
c.Select
SendKeys "{F2}", True
SendKeys "{ENTER}", True
Next
要在每个单元格中手动按Enter键,但这需要相当长的时间。我尝试使用TextToColumns,但这不起作用。如果我手动选择单元格范围,然后自己浏览数据菜单以单击TextToColumn,它将纠正单元格格式,但是通过宏执行此操作不会执行任何操作。
cycleRange.Select
Selection.TextToColumns Destination:=cycleRange, DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
替换每个单元格中的循环并使用Sendkey激活它们的最快方法是什么?
您想将每个单元格转换为数字。这是代码:
Dim cellValue As Double
For Each c In cycleRange.Cells
If IsNumeric(c.Text) Then
cellValue = c.Value
c.Clear
c.NumberFormat = "0.00"
c = Val(c.Text)
' c = c.Text * 1
' c = CDbl(c.Text)
Else
MsgBox ("Not a number (" & c.Address & ")")
End If
Next