宏将每个第9列转换为excel

时间:2016-10-25 22:58:59

标签: excel vba excel-vba

出于某种原因,即使我选择了一个列,右键单击,并将单元格格式化为数字,我仍然会在单元格中看到一个绿色角落的警报,表示它是一个存储为文本的数字。然后我突出显示范围,单击黄色框中的感叹号,并将范围转换为数字。

问题在于我必须为数百个范围执行此操作。

如何制作一个宏来突出显示每个第9列的范围(例如XP2:XP2700),并将整个范围转换为数字?

1 个答案:

答案 0 :(得分:0)

这是OP之前提出的问题的后续问题,我回答道。

将数据加载到数组中,将其转换为数字,然后将其写回原始范围。

Sub ConvertToNumber()
    Dim x As Long, y As Long
    Dim Data

    With Worksheets("CPR Test 2013-2015")
        For y = 1 To 1582 Step 9
            Data = .Cells(2, y).Resize(2699, 1).Value
            For x = 1 To UBound(Data, 1)
                If IsNumeric(Data(x, 1)) And Not IsEmpty(Data(x, 1)) Then
                    Data(x, 1) = CDbl(Data(x, 1))
                End If
            Next
            .Cells(2, y).Resize(2699, 1).Value = Data
        Next
    End With

End Sub