Vba #使用if/then和.value时的值
我正在编写一个vba函数来检查一个单元格的名称,如果它匹配,则返回另一个单元格中的值。由于我还是vba新手,我仍然在硬编码大多数变量以简化事情。不知何故,我的职能中最简单的一步就是让我失望 我尝试了两种将值写入单元格的方法,但都不起作用。两者都在单元格A2中返回一个#值Vba #使用if/then和.value时的值,vba,excel,Vba,Excel,我正在编写一个vba函数来检查一个单元格的名称,如果它匹配,则返回另一个单元格中的值。由于我还是vba新手,我仍然在硬编码大多数变量以简化事情。不知何故,我的职能中最简单的一步就是让我失望 我尝试了两种将值写入单元格的方法,但都不起作用。两者都在单元格A2中返回一个#值 Function getRole(lastName As String, firstName as String) As String if (lastName = Worksheets("Sheet1").Range("A1
Function getRole(lastName As String, firstName as String) As String
if (lastName = Worksheets("Sheet1").Range("A1").Value Then
Worksheets("Sheet1").Range("A2").Value = "YES"
'Alternate method
'Worksheets("Sheet1").Range("A2").Select
'ActiveCell.Text = "YES"
Else:
Worksheets("Sheet1").Range("A2").Value = "NO"
'Alternate method
'Worksheets("Sheet1").Range("A2").Select
'ActiveCell.Text = "NO"
End If
End Function
如果要编写自定义项,则需要将代码修改为类似于以下代码的内容:
Function getRole(lastName As String, firstName As String) As String
If lastName = Worksheets("Sheet1").Range("A1").Value Then
getRole = "YES"
Else
getRole = "NO"
End If
End Function
从工作表单元格调用自定义项的方式:
如果您希望编写一个UDF,则需要将代码修改为类似于以下代码的内容:
Function getRole(lastName As String, firstName As String) As String
If lastName = Worksheets("Sheet1").Range("A1").Value Then
getRole = "YES"
Else
getRole = "NO"
End If
End Function
从工作表单元格调用自定义项的方式:
您的代码已更正语法:-
Function getRole(lastName As String, firstName as String) As String
if lastName = Worksheets("Sheet1").Range("A1").Value Then
Worksheets("Sheet1").Range("A2").Value = "YES"
ElseIf Worksheets("Sheet1").Range("A2").Value = "NO" Then
getRole = Worksheets("Sheet1").Range("A1").Value
End If End Function
您的代码已更正语法:-
Function getRole(lastName As String, firstName as String) As String
if lastName = Worksheets("Sheet1").Range("A1").Value Then
Worksheets("Sheet1").Range("A2").Value = "YES"
ElseIf Worksheets("Sheet1").Range("A2").Value = "NO" Then
getRole = Worksheets("Sheet1").Range("A1").Value
End If End Function
这应该对你有用
Function getRole(lastName As String, firstName As String) As String
If lastName = Sheet1.Range("A1").Value Then
Sheet1.Range("A2") = "YES"
'Alternate method
'Worksheets("Sheet1").Range("A2").Select
'ActiveCell.Text = "YES"
Else
Sheet1.Range("A2") = "NO"
'Alternate method
'Worksheets("Sheet1").Range("A2").Select
'ActiveCell.Text = "NO"
End If
End Function
这应该对你有用
Function getRole(lastName As String, firstName As String) As String
If lastName = Sheet1.Range("A1").Value Then
Sheet1.Range("A2") = "YES"
'Alternate method
'Worksheets("Sheet1").Range("A2").Select
'ActiveCell.Text = "YES"
Else
Sheet1.Range("A2") = "NO"
'Alternate method
'Worksheets("Sheet1").Range("A2").Select
'ActiveCell.Text = "NO"
End If
End Function
你想写一个UDF吗?从Excel工作表调用的函数?或者这是一个常规的
子项
?其中是中lastname
之前的(
)的右括号(lastname=工作表(“Sheet1”)。范围(“A1”).Value-Then
这是一个自定义项。我没有意识到你可以直接给自定义项赋值,下面Shai Rado给出的答案是有效的!你是想写一个自定义项?一个从Excel工作表调用的函数?还是这是一个常规的子?如果(lastName=Worksheets(“Sheet1”).Range(“A1”).Value然后它是一个自定义项。我不知道你可以直接给自定义项赋值,下面的答案来自Shai Rado Worksheets(“Sheet1”)。Range(“A2”).Value=“YES”
应该是getRole=“YES”
?我试图演示如何将单元格值分配给变量。您的答案最好地解释了OP抱怨的#值错误。工作表(“Sheet1”)。范围(“A2”)。value=“YES”
应该是getRole=“YES”
?我试图演示如何将单元格值分配给变量。您的回答最好地解释了OP抱怨的#值错误。