如何在vba中执行命令之前检查命令是否可行?

时间:2016-07-15 17:53:00

标签: excel vba excel-vba

我想使用宏来更改长长的单元格列。单元格是数字或文本。但是,数字存储为文本,我想转换它们。我想要

`Range("A1").Value = Int(Range("A1").Value)`

,这在将作为文本存储的数字转换为数字时工作正常,但显然它不适用于文本值且没有数字的值。如何设置命令以查看是否可以进行此转换呢?

3 个答案:

答案 0 :(得分:2)

使用Range.TextToColumns method一次完成所有操作。 VBA的开销将负责错误控制。

ay.gsub(/^[aeiou](\w+)*/, '\2\1way')
pig_latin('map') #=> 'map'
pig_latin('aye') #=> 'yeway'

答案 1 :(得分:1)

使用IsNumeric。为避免空格转换为零,请检查空白。

if IsNumeric(Range("A1").Value2) and Not IsEmpty(Range("A1")) then
 Range("A1").Value = Int(Range("A1").Value)
end if 

答案 2 :(得分:1)

我认为应该这样做:

With Range("A:A")  ' column A
    .NumberFormat = "General"
    .Value = .Value           ' Excel should auto convert the strings to numbers
End With