Excel Cell.Value属性不存在(尽管我直到几天前才成功使用它…)

Excel Cell.Value属性不存在(尽管我直到几天前才成功使用它…),excel,vba,Excel,Vba,我是VBA的新手。 我在MacOS 10.14.5上使用Excel 16.27(19071500)和VBA 7.1(Office 365) 几个月前,我创建了一个Excel宏,直到几天前我才成功使用它。今天,我想使用它,但我在第37行遇到了以下错误: Valeur = cell.Value Valeur = cell.Value “找不到方法或数据成员” 我已经使用这个宏几个月没有任何问题 Sub Prepare_All_Data_From_Wac() ' ' Prepare_All_Dat

我是VBA的新手。 我在MacOS 10.14.5上使用Excel 16.27(19071500)和VBA 7.1(Office 365)

几个月前,我创建了一个Excel宏,直到几天前我才成功使用它。今天,我想使用它,但我在第37行遇到了以下错误:

Valeur = cell.Value
Valeur = cell.Value
“找不到方法或数据成员”

我已经使用这个宏几个月没有任何问题

Sub Prepare_All_Data_From_Wac()
'
' Prepare_All_Data_From_Wac Macro
'
Dim Valeur As String
Dim i As Integer
Dim Nombres As Variant
Dim x As String, cell As Range
'

' Nettoyages de tous les [espaces] et de tous les [line break]

Range("B2:V2000").Select
Selection.Replace What:=Chr(10), Replacement:="", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False


' Nettoyage de la colonne A (time-stamps)

ActiveSheet.Range("A2:A2000").Select
Selection.Replace What:="T", Replacement:=" ", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False


' insertion de 1 colonne à gauche de chaque colonne de D à V (la derrnière colonne aura donc le numéro 40)

Range("D:D,E:E,F:F,G:G,H:H,I:I,J:J,K:K,L:L,M:M,N:N,O:O,P:P,Q:Q,R:R,S:S,T:T,U:U,V:V").Select
' Range("V1").Activate
Selection.Insert Shift:=xlToRight


' Nettoyage de la colonne C et split sur es colonnes C et D (Dons, Donateurs UPR)

For Each cell In ActiveSheet.Range("C2:C2000")
     Valeur = cell.Value
     Nombres = Split(Valeur, "€")
     For i = 0 To UBound(Nombres)
         cell.Offset(0, i).Value = Nombres(i)
     Next i
Next cell


' Split des colonnes D à V (devenues E,G,I,K,M,O,Q,S,U,W,Y,AA,AC,AE,AG,AI,AK,AM

For Each cell In ActiveSheet.Range("E2:AM2000")
     Valeur = cell.Value
     Nombres = Split(Valeur, "abonnés")
     For i = 0 To UBound(Nombres)
         cell.Offset(0, i).Value = Nombres(i)
     Next i
Next cell


    Range("D1").Select
    ActiveCell.FormulaR1C1 = "02 Donateurs"
    Range("F1").Select
    ActiveCell.FormulaR1C1 = "03 UPR V"
    Range("H1").Select
    ActiveCell.FormulaR1C1 = "04 JLM V"
    Range("J1").Select
    ActiveCell.FormulaR1C1 = "05 Ruffin V"
    Range("L1").Select
    ActiveCell.FormulaR1C1 = "06 LeFil V"
    Range("N1").Select
    ActiveCell.FormulaR1C1 = "07 Tatiana V"
    Range("P1").Select
    ActiveCell.FormulaR1C1 = "08 7Mediapart V"
    Range("R1").Select
    ActiveCell.FormulaR1C1 = "09 RTf V"
    Range("T1").Select
    ActiveCell.FormulaR1C1 = "10 Sénat V"
    Range("V1").Select
    ActiveCell.FormulaR1C1 = "11 SudR V"
    Range("X1").Select
    ActiveCell.FormulaR1C1 = "12 ThinkerV V"
    Range("Z1").Select
    ActiveCell.FormulaR1C1 = "13 LeMedia V"
    Range("AB1").Select
    ActiveCell.FormulaR1C1 = "14 JSPC V"
    Range("AD1").Select
    ActiveCell.FormulaR1C1 = "15 Osons V"
    Range("AF1").Select
    ActiveCell.FormulaR1C1 = "16 Brut V"
    Range("AH1").Select
    ActiveCell.FormulaR1C1 = "17 LFI V"
    Range("AJ1").Select
    ActiveCell.FormulaR1C1 = "51 TVL V"
    Range("AL1").Select
    ActiveCell.FormulaR1C1 = "52 RLEM V"
    Range("AN1").Select
    ActiveCell.FormulaR1C1 = "53 RN V"
    Range("A1").Select

End Sub
第37行:

Valeur = cell.Value
Valeur = cell.Value
应将单元格值复制到Valeur变量中

实际结果:

编译错误:

找不到方法或数据成员


是的,你是对的。在旧代码中,您已将单元格定义为范围


在这段新代码中,您可以使用它作为vba关键字。这里您需要提及单元格中的行和列。

是的,您是对的。在旧代码中,您已将单元格定义为范围


在这段新代码中,您可以使用它作为vba关键字。这里您需要提到单元格中的行和列。

不要使用不必要的
。选择
引用。据我所知,当集合不包含指定的成员时,就会发生此错误。在你的情况下,这意味着特定的细胞不会在你的范围内激活。您确定激活的工作表是正确的吗?您能否在每个
Valeur=cell.Value
前面使用
Debug.print cell.Address
并告诉我们在出现错误之前的最后一个地址是什么?不要使用不必要的
。选择
.Activesheet
引用。据我所知,当集合不包含指定的成员时,就会发生此错误。在你的情况下,这意味着特定的细胞不会在你的范围内激活。您确定激活的工作表是正确的吗?您能否在每个
Valeur=cell.Value
前面使用
Debug.print cell.Address
,并告诉我们出错前的最后一个地址是什么?谢谢你们两位的评论。但我不知道如何进一步:1。当我把Debug.print cell.Address放在代码中(就在“Valeur=cell.Value”行之前)时,我得到了相同的错误,但是在cell.Address.2上。如何检索活动单元格的地址(无法识别cell.address)?还有别的办法吗?似乎我需要这样做:对于j=2到2000,Valeur=cell(3,j)。Value Nombres=Split(Valeur,“€”)对于I=0到UBound(Nombres)cell(3,j)。Offset(0,I)。Value=Nombres(I)Next I,Next j是好的吗?3。我还注意到,在这个“错误行”(第37行)之前的所有代码(本应在没有任何错误的情况下执行)实际上都没有执行!至少,Excel工作表没有按应有的方式进行修改。我还可以说,直到7月15日左右,我的代码都没有出现任何错误!!!!谢谢你们两位的评论。但我不知道如何进一步:1。当我把Debug.print cell.Address放在代码中(就在“Valeur=cell.Value”行之前)时,我得到了相同的错误,但是在cell.Address.2上。如何检索活动单元格的地址(无法识别cell.address)?还有别的办法吗?似乎我需要这样做:对于j=2到2000,Valeur=cell(3,j)。Value Nombres=Split(Valeur,“€”)对于I=0到UBound(Nombres)cell(3,j)。Offset(0,I)。Value=Nombres(I)Next I,Next j是好的吗?3。我还注意到,在这个“错误行”(第37行)之前的所有代码(本应在没有任何错误的情况下执行)实际上都没有执行!至少,Excel工作表没有按应有的方式进行修改。我还可以说,直到7月15日左右,我的代码都没有出现任何错误!!!!