Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对变量使用excel函数_Excel_Variables_Vba - Fatal编程技术网

对变量使用excel函数

对变量使用excel函数,excel,variables,vba,Excel,Variables,Vba,我试图从我设置的变量中获取最正确的字母,然后为结果指定男性或女性。下面是我尝试过的代码片段 Set Gender = rFirst.Offset(1, 5) Worksheets("E'ee Details").Range("E1").Value = "=if(right(" & Gender & ",1)=""M"",""Male"",if(right(" & Gender & ",1)=""F"",""Female"",""""))" 这会导致#NAME?

我试图从我设置的变量中获取最正确的字母,然后为结果指定男性或女性。下面是我尝试过的代码片段

Set Gender = rFirst.Offset(1, 5)

Worksheets("E'ee Details").Range("E1").Value = "=if(right(" & Gender & ",1)=""M"",""Male"",if(right(" & Gender & ",1)=""F"",""Female"",""""))"

这会导致#NAME?正在展示

您的方法包括创建一个工作表方程式,然后使用
Evaluate()
进行计算。以下是另一种方法:

Sub jufg()
    Dim Gender As Range, sexCode As String
    Dim rFirst As Range
    Set rFirst = Range("A1")

    Set Gender = rFirst.Offset(1, 5)
    sexCode = Right(Gender.Value, 1)

    With Worksheets("E'ee Details").Range("E1")
        If sexCode = "M" Then
            .Value = "Male"
        ElseIf sexCode = "F" Then
            .Value = "Female"
        Else
            .Value = ""
        End If
    End With
End Sub

您的方法包括创建一个工作表方程式,然后使用
Evaluate()
进行计算。以下是另一种方法:

Sub jufg()
    Dim Gender As Range, sexCode As String
    Dim rFirst As Range
    Set rFirst = Range("A1")

    Set Gender = rFirst.Offset(1, 5)
    sexCode = Right(Gender.Value, 1)

    With Worksheets("E'ee Details").Range("E1")
        If sexCode = "M" Then
            .Value = "Male"
        ElseIf sexCode = "F" Then
            .Value = "Female"
        Else
            .Value = ""
        End If
    End With
End Sub
修改如下

Worksheets("E'ee Details").Range("E1").Value = "=if(right(EmployeeAll!" & gender.Address & ",1)=""M"",""Male"",if(right(EmployeeAll!" & gender.Address & ",1)=""F"",""Female"",""""))"
修改如下

Worksheets("E'ee Details").Range("E1").Value = "=if(right(EmployeeAll!" & gender.Address & ",1)=""M"",""Male"",if(right(EmployeeAll!" & gender.Address & ",1)=""F"",""Female"",""""))"

您正在将
Gender
的值放入公式中,因为粗略检查公式会告诉您,这是工作表无法理解的。您需要使用address属性来返回单元格引用。使用set时,我假设您在VBA中执行此操作,为什么不使用IF-ELSE-IF语句来设置值?在公式中,将
Gender
更改为
Gender.address
,它应该可以正常工作。谢谢SJR,我在性别后添加了.Address,但现在返回的是一个空白单元格,这意味着最后一个字符既不是“M”也不是“F”。您正在将
Gender
的值放入公式中,因为粗略检查公式会告诉您,这一点工作表不会理解。您需要使用address属性来返回单元格引用。使用set时,我假设您在VBA中执行此操作,为什么不使用IF-ELSE-IF语句来设置值?在公式中,将
Gender
更改为
Gender.address
,它应该可以正常工作。谢谢SJR,我在性别后面加了.Address,但现在返回的是一个空白单元格,这意味着最后一个字符既不是“M”也不是“F”。谢谢SJR,这非常有效。谢谢大家对汉克斯SJR的支持,这非常有效。谢谢大家的意见