VBA:将值存储到变量

时间:2013-05-28 13:02:21

标签: excel vba compiler-errors

  

子测试()''测试宏'

     

”       昏暗的范围作为范围       Dim i As Integer

Set aRange = Range("A1:A255")

Range("A1").Select
For i = 1 To aRange.Count - 1

    If InStr(ActiveCell.Value, "Last name") Then
        Call CopyContents
    End If
    ActiveCell.Offset(1, 0).Select



Next i
     

End Sub

     

Sub CopyContents()       昏暗的currentRange作为范围       Dim genderAndDiscipline As String

Set currentRange = Range(ActiveCell.Address)


'get the gender and dicipline
Set genderAndDiscipline = ActiveCell.Offset(-1, 0).Value
'genderAndDiscipline = genderAndDiscipline.Split(" ")
     

End Sub

您好,我正在尝试将单元格值存储在变量中。但不知何故,它一直在给我一个编译错误。 “需要对象”

在我看来,正如调试器所说,我告诉变量是一个字符串,而单元格包含一个字符串。

你可以帮帮我吗?

currentRange在这里是'A7',上面的单元格包含一个'200m men'的字符串

发生错误 Set genderAndDiscipline = ActiveCell.Offset(-1, 0).Value

3 个答案:

答案 0 :(得分:3)

genderAndDiscipline被声明为字符串。

分配给字符串的正确方法是使用Let而不是Set(用于分配对象)。

为了消除错误,请从导致错误的行中删除单词Set,或将Set替换为Let

即,使用以下两种替代方案之一(相同):

genderAndDiscipline = ActiveCell.Offset(-1, 0).Value

Let genderAndDiscipline = ActiveCell.Offset(-1, 0).Value

答案 1 :(得分:2)

Set关键字适用于Objects。既然你只想保存价值,你应该把它留下来。即改变:

Set genderAndDiscipline = ActiveCell.Offset(-1, 0).Value

为:

genderAndDiscipline = ActiveCell.Offset(-1, 0).Value

答案 2 :(得分:1)

Set

中删除Set genderAndDiscipline = ActiveCell.Offset(-1, 0).Value