【问题标题】:Simple code error for beginner - Excel VBA初学者的简单代码错误 - Excel VBA
【发布时间】:2016-11-17 02:50:30
【问题描述】:

我的问题是:

  • 我在工作表“Crono”上有 2 列显示事件及其发生地点。我需要再添加两列,其中包含活动的开始日期和结束日期

所有信息都在另一张纸上(“Projetos Novo”)。 事件的数量是可变的,这就是我创建变量 i 的原因。

当我运行代码时,它会出现Run-time error '91': Object variable or With block variable not set

它实际上复制了前六个日期,然后崩溃了。

我非常需要你的帮助!!

Sub Datas()

Dim w As Long
Dim t As Long
Dim i As Long


t = Sheets("Crono").Cells(Rows.Count, "A").End(xlUp).Row


For i = 8 To t

w = Sheets("Projetos NOVO").Range("C:C").Find(Sheets("Crono").Range("A" & i).Value).Row


If Sheets("Projetos NOVO").Range("D" & w).Find(Sheets("Crono").Range("C" & i).Value).Row Then


Sheets("Crono").Range("F" & i).Value = Sheets("Projetos NOVO").Range("R" & w).Value
Sheets("Crono").Range("G" & i).Value = Sheets("Projetos NOVO").Range("S" & w).Value

Else

End If

Next i

End Sub

`

【问题讨论】:

    标签: vba excel if-statement find runtime-error


    【解决方案1】:

    您应该使用Range 变量,然后测试是否找到来自 Crono 的值(如果未找到,您将收到当前看到的错误);

    Sub Datas()
    
    Dim rng1 As Range
    Dim t As Long
    Dim i As Long
    
    t = Sheets("Crono").Cells(Rows.Count, "A").End(xlUp).Row
    
    For i = 8 To t
    
    Set rng1 = Sheets("Projetos NOVO").Range("C:C").Find(Sheets("Crono").Range("A" & i).Value)
    If Not rng1 Is Nothing Then
        MsgBox rng1.Row
    Else
        MsgBox Sheets("Crono").Range("A" & i).Value & " not found"
    End If
    

    【讨论】:

    • 感谢您的帮助。问题是,然后我想转到另一张表并从两个单元格(R 列和 S 列)复制两个值,行号是上面使用的 w。如果我猜的话,我的错误是:\
    • 如果我说得足够清楚,我不会。我为我的英语感到抱歉!但我希望这个 w 是找到它的行号,以便稍后与 if 一起使用它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    • 1970-01-01
    • 2023-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-13
    相关资源
    最近更新 更多