Excel 2010连续选择每个单元格,逐个激活它们

时间:2012-02-01 13:32:42

标签: excel vba

我有一个XML文件,我将其放入Excel中以使其自动生成表格。第一列(A)具有名称,第二列(B)具有日期。还有一些列,但这些与此问题无关。

所以它看起来像这个截图:

Screenshot

现在Excel(2010)中存在一个非常愚蠢的错误。当我有数据列时,我将其属性设置为日期。但Excel不明白他们现在是约会。但是,如果我双击一个单元格来激活它,那时它开始理解它的日期...奇怪的错误,但我必须为每个单元格。

现在我在想的是,有一些宏或什么东西,在B列中一个接一个地激活每个单元格(如果有内容)。

现在,我不知道如何在Excel的VBA构建中做到这一点。

这里有人可以帮助我吗?我可以想象它只需要一些线就可以使它工作。

6 个答案:

答案 0 :(得分:4)

突出显示列B /单击数据/文本到列/选择分隔/单击完成(未选择分隔符)。

应该这样做。

答案 1 :(得分:3)

试试这个:

Sub MacroTest()

    Sheets("Sheet1").Select

    LastRangeRow = Cells.Find("*", after:=Range("A1"), searchdirection:=xlPrevious).Row

    Set Rng = Range("Sheet1!B2:B" & LastRangeRow)

    For Each c In Rng.Cells
       c.Select
       SendKeys "{F2}", True
       SendKeys "{ENTER}", True
       Selection.NumberFormat = "dd/mm/yyyy hh:mm:ss"
    Next

    Range("A1").Select
End Sub

答案 2 :(得分:0)

我以前经历过这个 - 在Formula's Ribbon>计算箱>计算选项下拉菜单检查以确保选中“自动”。通常在选择“手动”时,除非您手动刷新单元格(即选择并按回车键),否则大量格式化更改将不会生效

答案 3 :(得分:0)

最简单的方法就是对各个单元格进行计算:

= A1-0

副本&粘贴值: - )

答案 4 :(得分:0)

我用这个:

Sub makeDate()
Dim rAn As Range
Application.ScreenUpdating = 0: Application.EnableEvents = 0: Application.Calculation = xlCalculationManual
  For Each rAn In Selection.SpecialCells(xlCellTypeVisible)
    rAn.NumberFormat = "dd/mm/yyyy"
    rAn = Trim(rAn.Text)
    rAn = DateValue(rAn)
  Next rAn
Application.ScreenUpdating = 1: Application.EnableEvents = 1: Application.Calculation = xlCalculationAutomatic
End Sub

答案 5 :(得分:-1)

您的自动更正似乎对您不利。如果您注意到第20行底部的小蓝色三角形。尽管智能标签在2010年停止使用,但可能这不是您的情况。

这是Offce Link regarding AutoCorrect Buttons 在首选项>校对>自动更正选项>操作中,您可以控制其他操作以及Excel是否正在尝试更正您的日期输入。我没有您要测试的数据样本,但摆弄这些偏好可能会让人无法理解。