使用Excel';沿边单元格引用的s转换函数

使用Excel';沿边单元格引用的s转换函数,excel,vba,function,output,concatenation,Excel,Vba,Function,Output,Concatenation,我试图在VBA中创建一个用户定义的函数,该函数将接收行的输入。然后,它会将我想要的excel工作表的每个组件存储到不同的变量中,I是行,1,3,5,8,10是a、C、E、H、J列。值,是唯一的数字,Un1 Un2 Pre1和Pre2是单位和前缀。然后,我想在Convert函数中使用这些不同的变量,它已经内置到excel中,在这里我连接了我定义的两个变量,以便正确地格式化Convert函数的变量。然后,在单元格中显示转换后的值和新单位。我还没有弄清楚如何在单元格中显示值和正确的单位,所以我尝试首先

我试图在VBA中创建一个用户定义的函数,该函数将接收行的输入。然后,它会将我想要的excel工作表的每个组件存储到不同的变量中,I是行,1,3,5,8,10是a、C、E、H、J列。值,是唯一的数字,Un1 Un2 Pre1和Pre2是单位和前缀。然后,我想在Convert函数中使用这些不同的变量,它已经内置到excel中,在这里我连接了我定义的两个变量,以便正确地格式化Convert函数的变量。然后,在单元格中显示转换后的值和新单位。我还没有弄清楚如何在单元格中显示值和正确的单位,所以我尝试首先使用一个消息框。然而,我的代码给了我#价值!按原样运行并且未显示消息框时出错。对解决这个问题有什么建议吗?对不起,我是VBA和编码新手,所以我希望这是有意义的

我现在的代码:

Function Convert(i)

'Dimensioning the variable type of each variable
Dim value As Long
Dim pre1 As String
Dim un1 As String
Dim pre2 As String
Dim un2 As String
Dim Num As Double

'Selecting the desired cell in the chosen row
value = ActiveSheet.Cells(i, 1).Select
pre1 = ActiveSheet.Cells(i, 3).Select
un1 = ActiveSheet.Cells(i, 5).Select
pre2 = ActiveSheet.Cells(i, 8).Select
un2 = ActiveSheet.Cells(i, 10).Select

'using excel's built-in function, convert, to convert the value to a different unit
Num = Application.WorksheetFunction.Convert(value, pre1 & un1, pre2 & un2)

MsgBox (Num & pre2 & un2)

End Function

第一个明显的问题是您应该使用
.value
而不是
。选择
来存储值、pre1、un1等。。非常感谢你!我刚刚在代码中更改了它,现在它正确地显示了转换后的单位和值。我试图将其放入一个选择了行和列O的单元格中,但我再次遇到一个值错误。如何更改此设置以输出I行O列单元格中的已转换数字和新单位?将Num更改为变量,并尝试使用此代码将Num放入工作表:Sheets(“Num2”)。单元格(i,13)。value=Num&pre2&un2