VBA:将值存储到variables

子testing()''testingmacros'

Dim aRange As Range Dim i 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 

结束小组

Sub CopyContents()Dim currentRange As Range Dim genderAndDiscipline As String

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

结束小组

嗨在那里,我试图将一个单元格值存储在一个variables中。 但不知何故,它不断给我一个编译错误。 “所需对象”

在我看来,我告诉variables的方面一个string和单元格包含一个string,debugging器说。

你能帮我吗?

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

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

genderAndDiscipline被声明为一个string。

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

为了摆脱错误,请从导致错误的行中删除单词Set ,或将Setreplace为Let

那是:

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

要么

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

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

Set关键字适用于Objects 。 既然你只是为了保存价值,你应该离开这个。 即改变:

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

至:

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