VBA宏-接收偏移对象定义的错误

时间:2018-09-17 14:01:22

标签: excel vba excel-vba

我试图遍历电子表格的一列中的行,其中第1列中有一个时间,在第2列中有一个日期,在第3列中有一个值。需要单次更改该值。我有以下代码,这给了我一个 (运行时错误1004-应用程序定义或对象定义的错误)和highlites

      activecell.offset(-1,0).Range("A1").select

我一直在试图解决它/研究整个下午的问题,但是找不到适合我的答案。任何帮助将不胜感激

Sub Timestamp

    Range("C1").Select

    While ActiveCell.Value <> ""

        Number = ActiveCell.Value
        Counter = Counter +1
        activecell.offset(-1,0).Range("A1").select 

        If ActiveCell.Value <> Number Then

            activecell.offset(-1,0).Range("A1").select 
            Time = ActiveCell.Value
            Sample = Sample +1
            activecell.offset((Counter - Sample),3).Range("A1").select 
            ActiveCell.Value = Time
            activecell.offset(-(Counter - Sample),-1).Range("A1").select 

        End If
    Loop
End Sub

1 个答案:

答案 0 :(得分:0)

您无需选择单元格即可获取其值。您只需要参考它们即可。 VBA是一种面向对象的编程语言。看一下此文档的基础知识: Object Oriented VBA

只要获得Number更改次数的计数,这应该为您提供该值,并且您可以添加需要处理的任何其他代码。

    Option Explicit

Sub test()
Dim rng As Range
Dim number As Long
Dim counter As Integer

    Set rng = Range("C1")
    Do While rng.Value <> ""
        number = rng.Value
        If rng.Offset(1, 0).Value <> number Then
            counter = counter + 1
        End If
    Set rng = rng.Offset(1, 0)
    Loop
    MsgBox counter & " changes"
End Sub