将数据从单元格A复制到B并转换为数字

时间:2017-10-16 17:08:10

标签: excel vba

以下代码正在复制数据,但复制后复制的副本将被复制为文本。有没有办法将其复制为数字?

    Worksheets(1).Range(destCol1 & LR & destCol2 & LR).cells(3).value = Split(srcRange(5).value)

我尝试录制一个宏,我突出显示数据,然后点击选项"将文字转换为数字"但它没有记录该部分的VBA。

编辑1:

With Worksheets(1).Range(destCol1 & LR & destCol2 & LR)
    .cells(1).value = srcRange(2).text
    .cells(2).value = srcRange(1).value
    .cells(3).value = CDbl(Split(srcRange(5).value)(1))
    .cells(4).value = srcRange(6).value 
End With

2 个答案:

答案 0 :(得分:0)

未测试:

Sub jdskfhs()
    Worksheets(1).Range(destCol1 & LR & destCol2 & LR).Cells(3).Value = CDbl(Split(srcRange(5).Value))
End Sub

修改#1:

以下是您的需求:

Sub jdskfhs2()
    Worksheets(1).Range(destCol1 & LR & destCol2 & LR).Cells(3).Value = CDbl(Split(srcRange(5).Value)(1))
End Sub

此新代码将Split()生成的数组的 second 元素转换为数字。

答案 1 :(得分:0)

经过相当多的挖掘后,我在这些论坛上找到了另一个答案here

理想情况下,我希望将这一切都完成一行以降低处理能力,因为这些页面会变得非常大;不幸的是,这是我能得到的最佳解决方案。

修改

使用我修改过的下面的代码,但它确实有效

Private Function TextToNumber(rng As Range)

    LR = ActiveSheet.Range("C" & Rows.Count).End(xlUp).row

    For R = LR To 3 Step -1
        With rng.cells(R, 1)
            .NumberFormat = "General"
            .value = .value
        End With
    Next R

End Function