Excel Cell.Value属性不存在(尽管我直到几天前才成功使用它…)
我是VBA的新手。 我在MacOS 10.14.5上使用Excel 16.27(19071500)和VBA 7.1(Office 365) 几个月前,我创建了一个Excel宏,直到几天前我才成功使用它。今天,我想使用它,但我在第37行遇到了以下错误: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
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日左右,我的代码都没有出现任何错误!!!!