【发布时间】:2014-07-26 00:10:50
【问题描述】:
过去几天我一直在尝试解决这个错误,但没有成功。我希望你们中的一个能够提供帮助。我得到“在错误数据类型的公式中使用的值。
快速解释: 将这样的函数转换为相应的文本 (20054/18393)*100.0 5 位数字是指问题的字段 ID。
身份证问题 20054 你一年工作多少天 18393 一年有多少天的假期
我想要得到的结果是(你一年中有多少天工作/你一年有多少天假期)*100.0 如果只是一只手,它可以很容易地手动完成。我有超过 2600 个公式需要转换。 我在下面创建了这个函数,这导致了标题中提到的错误。任何帮助将不胜感激
这是我的功能
Function Test(sInput As String) As String
Dim i As Long
Dim num As String
Dim Text, a, str, shortname As String
For i = 1 To Len(sInput)
a = Mid(sInput, i, 1)
If IsNumeric(a) Then
num = num & a
Text = ""
Else
If a = "." Then
num = num & a
Else
'search for num value in second sheet short name
shortname = WorksheetFunction.VLookup(WorksheetFunction.Int(num), Worksheets("questionlist").Range("A3:F2537"), 5, False)
num = ""
End If
Text = shortname & a
shortname = ""
End If
str = str & Text
Next
Test = str
End Function
【问题讨论】:
-
单步执行时哪一行会出现错误?此外,虽然它不会导致错误,但请注意您的第三个 DIM 语句实际上创建了变体,而不是字符串。您必须将 AS 单独应用于每个变量。
-
感谢 Lance 的提示,我按照您的建议更改了 DIM 语句。当我完成这一步时,它不会在任何特定行中断。该函数执行并且我在单元格中得到一个#Value。
-
请编辑您的问题以解释该函数的预期输入和输出!
-
在逐步执行时,使用局部(或立即)窗口查看变量的值。
标签: function vba excel excel-2010