如何在执行vba之前检查命令是否可行?
问题描述:
我想使用宏来改变长长的单元格列。单元格是数字或文本。数字,虽然,存储为文本,我想转换它们。我想喜欢如何在执行vba之前检查命令是否可行?
`Range("A1").Value = Int(Range("A1").Value)`
,这将被存储为文本数号码时,工作正常,但显然它不会是文字,没有数字的值所在工作。如何设置命令以查看,如果可以进行此转换,那么请执行此操作?
答
使用IsNumeric
。为了避免将空白转换为零,请检查空白。
if IsNumeric(Range("A1").Value2) and Not IsEmpty(Range("A1")) then
Range("A1").Value = Int(Range("A1").Value)
end if
答
与Range.TextToColumns method一起执行它们。 VBA的开销将负责错误控制。
with worksheets("Sheet1")
with intersect(.usedrange, .columns(1))
.numberformat = "General"
.TextToColumns DataType:=xlFixedWidth, FieldInfo:=Array(0, 1)
end with
end with
答
我想这应该这样做:
With Range("A:A") ' column A
.NumberFormat = "General"
.Value = .Value ' Excel should auto convert the strings to numbers
End With
'如果ISNUMERIC(范围( “A1”)值then'也许...... – xQbert