VBA if else在excel中循环返回#VALUE

use*_*972 2 excel vba excel-vba

嗨所有新的在excel中使用VBA并尝试创建一个查看数字并将其作为六位数返回的函数.

我写的尝试完成此功能的是下面但是当我在单元格中使用命令= Res(A1)时,我得到一个#VALUE!作为答案.

目前第一单元格中的值为30508.

任何人都可以提供解决方案的任何帮助将不胜感激.多谢你们.

Function Res(myval As Integer) As Integer

Res = 0

If ((myval > 0) And (myval < 10)) Then    
    Res = myval * 100000

ElseIf ((myval > 9) And (myval < 100)) Then
    Res = myval * 10000

ElseIf ((myval > 99) And (myval < 1000)) Then 
    Res = myval * 1000

ElseIf ((myval > 999) And (myval < 10000)) Then  
    Res = myval * 100

ElseIf ((myval > 9999) And (myval < 100000)) Then
    Res = myval * 10

ElseIf ((myval > 999999) And (myval < 10000000)) Then
    Res = myval / 10

Else
    Res = myval

End If

End Function
Run Code Online (Sandbox Code Playgroud)

dan*_*rak 9

更改Function Res(myval As Integer) As Integer到:

Function Res(myval As Long) As Long
Run Code Online (Sandbox Code Playgroud)

你达到整数最大值.

Long代表长整数,你想在任何时候你的数字超过30k就可以使用它.