Excel VBA - 只取单元格中的数值

标签 excel vba if-statement

我在 VBA 中有一个 IF 函数,其中有一个数学公式:- (Cells(i3, 10).Value > 30)
我遇到的问题是第 10 列中的值都是字母数字。例如,它们都是“1 - 难”、“2 - 中等”、“3 - 容易”。

无论如何让VBA只看数字所以当它测试值是否超过30时,它真的有效吗?

谢谢

最佳答案

val功能应该做你需要的。它返回字符串左侧的数字,直到找到非数字字符(如果字符串左侧不包含数字,则为 0)

debug.print val("1 - Hard")   ' prints 1
debug.print val("  31 - Something else")   ' prints 31
debug.print val("123abc")   ' prints 123
debug.print val("x  2 - You name it")   ' prints 0
debug.print val("-31.5.3 - Negative")   ' prints -31.5

因此,只需更改您的 if:
 if val(Cells(i3, 10).Value) > 30 then

关于Excel VBA - 只取单元格中的数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44309526/

相关文章:

excel - 在 Excel 中设置 x 轴的最大值和最小值

excel - 一个过程中有两个不同的错误处理程序

excel - 如何 VBA 选择一对工作表并将它们复制到新的 wb?

Python:如果在 For 循环中

c++ - 为什么我不需要循环和 if 语句的括号

excel - IF语句: how to leave cell blank if condition is false ("" does not work)

vba - 是否可以以编程方式取代 Excel 中的 native 超链接跟随行为?

python - 如何仅使用 python 标准库创建 excel 文件?

vba - Word、Paragraphs.Add 不返回刚刚添加的段落

excel - 同时更改多个单元格时的 Private Sub Worksheet_Change(ByVal Target As Range)